9734979851808260408204331978460828611563272651508812382979008289302710131557033132804274569177571938382891169473842479424837824860730114576751728204682368306445844711612753062623897782810733010391403775940574599124848077641389504094106755157897547974397903133240986032857623809260556444078846712424124387685804758698789052777757636969795830447227525327309344630980446318988666247776475114426641480446733662157453572796363148057235600119199078024109217485105257560852084513283500085896711515612238744518664837097022687702141298655113738401493000843425088040742046975930988711098537390895670576582947422158470997777747626991193692243615521363893759594501232858598777910602969798219413069684206190177107319734387308429591615629662791227489485679640869190504043447407046892635785091674619218347767134022948688326564185567978544406764016452255622954479122079880521233039030440970544658354147069781187291073338562892113778406566916618903448392557032301672958568473288680151924883324029866942240810332118178747245420486442978026258553947535730856457703494351702805475882420811172538333045969455507115152233634232487735694439020465881390369710718814576686313098000328149147852998991826289819153009660587586221200921609536411478705289951238068120655374269272303323515202421357029486648642829798014355177388476580856732109780571777813107698025101250897105443319077436354036704890604540152839525801867025287532131855631585285162740965856566021091914709434058510816442018955760085085359217014380577597279796452179674012031084570331787215822268837284245106842518956425942257773365266485812499580873598148129298778344673913329284695446582338388447083625269010374508406982529980075667035842655132848415991045051590834970478737209208056743538744271968171832967711695156312174396896053155967096015894097282713522272705898126064134107827455686852471665648745579404325924349925343408047750734896362681266617020376322643313767271325985393041041507603138784381815553777003427787812972310674469623698246210767845130391825119082986714122437248612103883506470909983062972114544287378418623533743165834479884641253248631440550356329752702875187296439330826795693036619558200229544104936329648500369289952734194708966323727452506524555693546562531459649287026798912691849014900187554030297953685872316847283629390248550080099948194027669829711112697268480031267626256138363296875957160292027486917535005289667670867780466150811666666574626566729297123396832685714128469496398414488756962280104744112523466667154317615164883668915493343526313264942140719749115695312057003406529039720340420059628853007083850304883152309976459437898932696107343084133692120385054425892479296253385387835434587087296147913585925486786187176593862189355578799781247929263387381223691528692316796700907965689789495403244436801568294727114445355215639330631981135871478769766224627274491879424847640041187031902315276834699158831607256794150619309802901225467601674962675912116600979381358362828840110914756771535010935426225423356210516863585304057133982038822117064611333721587162726146255974462947714241506274751419752523397199292911320515088920561973526774698528887424291570765019936342072322383464297884018132213669693857014668122277052775834557059377009738615739901277469112079043188128767211465160239459391543380718427365142188243580586912003798379815217485653611797853999504736470032962262601859692428128939364603360369979244947913980083323478801804980807773856932715269102469033770252603210535625329479983679240533944608095260828590974293242692146937165061073243695777202835544542705225110062162422011574413997239206925198741182231016188113965192364239404880851459555358948999306230665777935129359574631281057853847583932545565871772776994530388759023117147713655891909396381750584773565519593793890891669046940149209874224911610146195366470080494795133074710401677386225526576986434263620178382306975582012733821549574213878988583525949180413005119417409559537172101026841090742281231547671683835953815506674036763291285617268388057040778954259848653963726866359401287763686505924866337947735010983078841647656840816098680043286332148694796248755846016655798132022773206856484022336746023770798886544035883073982968240521740620744208853938112667305991137048483808398838049517711317157291601045039216921246696704640858165995685538128978824175169573541368228894559421188710346432795214460065118684193134489706089193401682885868746157325331358582725415099665060398383366623505417219051252910707565938722861420405505400539655668122622246353960931977247202896181458531979535062312565368936391561898685726353347216637881316529324519897066810277250653717003856711563279026246926327654915905113078104122888078913368535540332747945334746449314566268096961726268866394879403648283415282239813156593220699121331855873339172043258587876561889111672470623182780675844297567721774460789808349999622241665559841892446288359558210557787572221990429671435198890338565175204781889275734636868473375212084829690810497026114707667282242276894860450623027474896357738618380544838974721808853139321921790627277613296877245138226218641900946223575383675807625130253718069765183922156559950560494506598685426362412910935882203409896538504013762556375212702124435685859112140345936018153126931713872608236679800137743118882747516765343963862208147678883441234732200062724871613101006283366993438702019901652752592775064719260284623685111479871929885636602928181166000796276353936444303322126976064768452530985686831351185200244651776805883088416383989894649190056265381526766400550760505963685418503254525543009724334687287093262961442725106607353088148154471960010089434761513547952093232750129179477757106384342070088239326284598911089119936908843209001643478739321508897618758925971546448857777882751356626367371664007224255819580219845773877031004490595052959033885694253572736814600021053610163713592027781092530704694024194844147652398558316818285325246466710870096668045666056677510890599357508852391380929495452890868179574184689555562678289599451049330920833470906325010185982313600061238926848095353073788018943272567791577530897519796615305763432770946198338020279079146367142272781821831893969893726411976661791767553086550333845599560366112634298343378037287577224487465568388863357948875225560830029139529675078580163785838602846363860601079966906192676532416181671618326748994048575622724716154909506062962783770513836139988977162242519100236541236960257920833916610306131734210194739997866497679286551433793003960447342230125523280163410341274738245594599149577409453627896169693706153864947202868316742148512467720961591014730495171429043979033833574240461949912313001601142151496071848982903861601320345025283734209290436429676800859840936845869197951167673149935719576353575433474698802201634623993932349405322955376700356354679832437744510447038820180234558086720152699561713999280373191925033258178070967482088017335178293312881446134641170800070190700306511875147802225451614779339914765494817115275296078469335389703234881043950309188796086205066890456886818454613054922159015995841684834057487547933468890411989113268328518333209126247747061514951793275975273828161996153483826397325109851411662040593750375443727376002556872371619275879258126068371223327324622435558800113556357740526407776006921414826958105608077894706382423779305416720034033067161111892162710280217482008409574290794026186265728176656752490875411322344957034919164398047421424181299480390942892325098120524492126584358921156767528990725046453783270626358024068075684931812815480004747571339478982461505054427987503570136493784970192721704483585209719810370798249738985347287598414845132887882202014453977147263325387488906949435560017101968130364395500822154647626948648990384907289286985254756280738695293483640276526343590557765529462481830184281504965551114652054057111332492409986219923400751066380884299731378935852513739341253100685902268609688253743057617638751977143210363523333559712794366393526951298954422125075556920883521255316025216726048361632266320961154746904628172215600424644434150953325171688935889006824260591343845786439418530309727265129805595838137367671012060160255493199130376864450734562778958637435572558665427079411486107941631948540040996478047457144657262241113528997451525103491403858217946135511919260538171472054788749716258220369912583423295085239827566959290262536053926187976690551051937739110627238569610242747795034744657443328650446742167889285004518372553117148142166126097516747373056474707526567952151578523479886069101214492396708170546374092488075145018147715198922168386412250880468018711356172146982593475689276687235296252825323949941646717626355532158341239660846953439398501742971728103022082580666511858689163082387312830348403561996640517420587338686333124506364755747437352537452292738588691977912925397076661179150946192381607071256301192626313757296208798425647415995966852673783339907608143819133234412457632104033901541413345113163113845100358499141865477514962165457314077567045492684557425661392789102786919737286910130988753590539760105719829592039836090443436180422451484153139836895111901373649453137805928639692942113720191201742479124059615942674832463983938367206100369909342749181970643819154246940414164746619788068200245376908465655980793147710543105760829695126053271671441177323702505921649350038361444036583807398176496350982223169431207740938564827994406925151405007559113469110426966460593377556210677237621948624761435748827221541667942722672085333194454055145889215384274822010825263968480719143550138253937119288108631304078297808307156612478042641657473275419374345868206855808902308511013567930666900424843313609046292044431333632497092773818294057094089910373469270812295369303018438915631548015757761229590801485387143847738333525898769822192179702764214508258282797547772565125066809099703531731571316546135200560876496950853600701359326571465823451681611961891651180139711421779222629719572199108368013316055991758933570014178677164482663247081403029153371788205436430098397164079016108819880991135973746971037318194730382681060461574798877636299763686068975140498293644470927991267135753965723518016085359854709934005406013312047045485698756981030335665245090828002909268859133306688515871801408322782071806448106033676918013609517573964667549440046494538221259600508757540747191800840248479890571373640335899019884162056460732844027368179505103906069490858278247517925313801819052152551702167743482530306912307702117808083811254389702981728636086944292555747718517042084085667651981027216054454252113452878636285854881730361854167973674113389701475393316651406600913681509172839733410609700220600752155162450115616881244895008763114768339186577855266879028139169317348224973124999697953854235057016199569015886413371386487395238290267889919581250531825512791435889905356488660570970456885076599952307301246347762339683241372295545447784731424133788958853636871182561442883531782604827139030125037691913159036126200600315031956866894318230981329807775391604720722978099611264662403252023413291380051638129177831800481384565917645547202509186740833204644953102562924886884909797187779585342215344262223149838258363483488151969400280153198128689070727329868528246563074758678700023949890178612176246135313681669663808158882373935405829761479562354696992998864462049356999879493980275765851900032255612408976541918090520816958534791406778169070703882528351025906922288136300002332707945148421810135070076780164861361587225724953104267984858280543343609153019232951229137711990109543761922650738083898735647527245701486498864182891888547558660420281300158844543701938842013730038252153381611754801111054662777452309214277835961126926959968084753417527245603335909537686303916803812387507825366434828183190135031387918419593622200803738099577681592807402292880946632531926170135096701268229711942736459477957853490482515905060626906595453196214442062604238978614162992489216796303019717051133662786199162252476114285488886921450519353035291531273596160903601482686688722375539994507635485662245048574313467983136880926098281280518040000125721362077401518164832844368100211177230883931219370164079880164991486380797886713682677350926226035282463357001289167023111323392535867268347974145089344689274911271877980879976471349699006215587507287914766036556923744815347539255956979723347513113818497320997454927635365765049438937638363418893931761231477781116537086969749950322063460916328880388482217451849729008153362370117233428548245127876961866387258357532162021720603568174314059089958512858246050907495201616916572860354321338056364070430993612453531697576792221340402974074109276822947094966467591671458861760429957429552797816894427751731746049745950454340902740429496835117822114219718281637553738524406366147981726749414495972702075463661898461835182146564937369783283941952802275092241149413074409075221655127100555442410140991843963707150129780980772686842098237172044008506208153463511132546183541248180229430408933390553689954211417185318702365014478212093308475736375225093229263696867990129715683862532434301820085194676436515039301804396715426724583902264501053458472401910773297385664282777983659457110411240933807613287716878131431129768483029627588037016107794260813569121002239479574215717088822385115095730873729624105540209827141165592446660918805008199068570967769125231090059503448364309437441363985707374000195964416187625564900686261854894589117927655641182431354322572423021705218874851991100882719071423759449517807837179044076705040685030558945161521744445358266805893104114604330837023946732808989301917609236065699770330102454462200677789970278619291250552657505465013252081476522467645824562252840396395380397591072744081563062675132864379436712454491516954938475075021757561350515424346511592233055804053690296215336837878521573380925672353637537303077823371621956188679001628510124277220972977559813188894337171827159503368337613183032936538004228232186635246821084576371643406943696661630998486688857087230002738528016917152528509036161608108504561690595301560062926741293230922000117052490425415137474555160339527172647783206639772134833850852631090721722121752576793059471856320119566522467228572684837494291417258505852365605385947355203078240134557807115927050551263382642474212171372982964849145808315910570439936932062262367965958359273059910410894729057213813536753712252061046178619279542430033122114456619866319028269582588322613837296586352411900749727895345977908134998728254153133276236328445752767086396850683123480980877434401984223204034276499712210884962688195930953101930631667826735513641993093304915303198558649955951081660396418412755726565335781035664290537989885778955230165748105209741522503317371261756701171373135416506521979265930983880609988837731971628458917806750180695612686666561485723204740934633064669607999749576860918953206323133340885526044739388290299012609180213544494684558332343097949231799771970561494031483612141761835118597325356074595072340701883829968246757966432644418722784484745016186145207553989151041254060124099740142663224317721978121273710906118358392154235584071267130170156892330118211496089663805386519706068101647950168863824760431113503474952545660388346911540532443091561949365489249062193786129082520565011589476141456370928353502607478788237049949760626884507010375060122537165661410566562081015460433635410230758984784892021164539623218220466486493836721993772110272146847274349748356451938045865088022465986878953225204106539823961175452907767007540579305170454783085823551625819678950544625067762154728290653078742432668456086815384697601752599791689324346502856248602496478290876383475338506356679845741311671293487041139488431369076311115631012817744854100052632721497501181990997092908746902595292395523822791925007448607259579926633021359768149935971457272663719586420355357351908607493691698581008999381471238000472081903732382245432849194450463389552385435309975982359171849926770606608481078798247756084844604518713750343648985463767277023475594700330540878448766885766265913741809431285033033078356617982059284323655544019864886211814512842264092857869820460854236971760603829966650781337776113837927050689087068302365852100027059575771102247605735002155387201143590421142458508154891470458479778678528608130358587049966534247540170547605071012843309944042113112061645229836617262280005031223996761292369656569688285812681235952792046697388277262580627548600388083204144556028749669970976791035578132574790595686674129522292842540109978136842770118838821206996524512124030536222428472811554597916113525141027536036134930690382448813258970903020561825622529720402554928074396311801164089643408509940074299405848611166852864941626845605817528788586252414944221264031250625507377455796393967191277982109561655856998646615833097902753207404935492853581535653585909517516896235295516666971553972774140184035200323676617219302727314202417338972233255667761285495135011285995861129999520068591921084312978508748900608004347241684549074388310049132324713508125655149898212239697748037660156498871032773088510125661570075854042235115838484614069610351091914576642245117170516386571326344954441789227044223391340579326869064300583933488689465759299666128316293774656352120648985871411895865522684218763221968790026244592598081739428350156323623795825583998877935443221925500296447026072283204527436435133557761842857470113476519491910213230036553985111995629077414657760578230000611400840451866431979647132550923165569831372142656239199316328796433392220941049923913989524918326617974747813512858896696064397549111664069827727672450573868182572140071472040235906978687891536274688605800478824295731865009808255886474213453004261448712541718611308917320583895648064511493259144573052532144284073233975538443628881016391696461796249328842147551097891539393957346201534995832085384203416269324893360316763295829490473645628071732093679929346946028494448231582380049853629334151256950373269603334758940483464856140034083952140532566037620961374977356565402137700172370297203372102545337825167505006658246868459469176738241586914635601438674305874009584486807427611138345474690095604550386031844421520654256664887986925119872063964710317028414559891397479946188860696992564025622966524639916688321633047281544691373162554765984236737075345666477109210545988084864422353699768201248784455548118615767339486505083730358455791854791202307317204243287931612698868550769831604103676622671206376180358976377895767450400352915984009760030878923628066355615934432383874059448177622134253443050149452289754564453131556959995874240706513512658284722544647432798221523439084811993826182013695824874181799657535578525204409488139836344431307438320737271056128500995549687625036972905335400706286728288685444530100791125967003417771605129629803166330663579074137609396266132358566089326833542854025983001651557066149713740778455740658034132144089941680958035851305185710572938617424628693054063530639576199692682545231141511808442686680127596912733447753237214472016265453832078899068741773381291582005524816061683559924508034667613336258912713861559558172839561026208440107472018454760085912133097490575128323178560655847375673511826101609212805961681404992467596821872935577150658903388433475736547977202314820068534493144777735775902288309252561079144982103438335303782843181111523646385586455098264680437651774460087213163830621802358043452976213072229015514254714808318890324038716323817919398247245330354155875725400989172974513078218488689267911241719613742717040780064873376736734161427409425560366748816882702366535531518361057058240086186388691541140977543331464342240688746663666306918411282642888649047559322549692520461193239709843464565970422441215602814895814531697655115848047643326608000548695366809952412026405909304011173117803506459263584608302246752733433427220937274517041312855697024488111318159568157603649319416535078019619945576942327999083557308019652144508360830291947181322312773254524458368349978889959948207795020310795653917287787532556779445350288384582278043753801311829479637395435924950485623745817331657784258449633849477251025602042927354240898150883167950190175894735743510127898339269400900312796521455915773458350972960758630786626633238930470273280017053671496347040018811968389703701374697740584255552167962166528962711270069420798883153233417666247612480169187305221681352037736413624908224115365324379755828218544524770870524312923379006652835145067989348206499438357788646098725589207955812521643135032563044464403760605390757844598326624220615284977494406512354640763815704637130889997638091863941840223225533490260026277072359513441795592215334907845951991293812716239624072073394958036039222380080576951376532505370375234612815693671097509465487489559077509973408712248100005241271396187637227793335903434004830727973754589138759335379292824328106735831101588251309072833959424366476075125413718888866390434446537185839629358638543323591380248693756233452976380411586707509652739004658832238861652733514461983161089428352885516331957813703708937566031160552588658343781757051130687740405327807783668536915328680546657421879325687571912544110959427850630079824641664216143984437713533297607059935800009036606860291561108707069400351966528210553226939348185734644448486734974072458021348209793646309928649862437602591093675248667126327123259340321648164829014631917533330725863209732836354256047728563781469267873882750392725895049060369525823989565069354965692579912231589900488445897608750558773837004698532218281518772214638940207654372278212321274820482917594242984765347660449655977996554368349535523684443016423442286051392251783425772348051728397948509961735091077920593541252240182188427893024884503875971288576251075964807577712355838449673286047775062963826036665166525920774774810218178628401699229782072789729348594785344198887976632261222198847912140990347452965064280622559173001082546381283136402797312914922794944751182372470465343114223936476104310868583499433342354349204915446038332756706736296429973208138249253355348181535864078918002382948155671886120475458685790418209665383891738855556073156547213434238770999454044513786530937073026407911511951062095634837187196654684147927639240297715097234832230053158447959830066654462453880306983418158097730505754022488690144922495821587604028005216164954540460261850061419160624983846000536446528428891228316470808653759815586600553314038631652338623221930409797634568244548252763771372108737382542162493807136463304233856548731088087890120657308389125758103740943101014040265384720725003337391302292606454810370267652322552135501167435143264808913186187878077981909352976382469203395993615597443641548284396585914256308073551167819001714943863236610922887720253067285484888312240608894426122969521142146146586997504040328413165680099147657841297272715234006499863685386190128760893481681858471115748680024749781031054366099315881134765818463059891993761505220892703640725615568951054996671288413667595052962694261440207508486683573860775876731485358358881748366193491072010891553161390454197684197087308892357829023394368348128758753503878526258508910643177569003883423999924915821248568056240695923908220385872013996363833566471778060137097412398353529902006473147998493902652942221384876012831548166551302555886112296445807096113908837641874242964634426585644274350022386265849436263832472981431908796238353939923203094979592149002057340575141175827342354075630757883786601248281961737513905510560921408356116935247208568477632459796698377327249852721408546333159658942724563365819274411397008872418300811645561605093134729271233819345649316904019669501737024268312402275907756335705763657728841701258305954031942048661165853592406999851029028769065829568870631927842514560755221340590161066110181892206016355389091895111235279548307991380427772446812052203354828259471443004604654067838388665704849950567791104786163097951476328385954986039594981729783857001986348251868868491227201769274993552019855557139506913271578969725328449348196371939367008912726687348441338930786613252090884587152195171296231335495482883120267713996552030908328263716490708850384233626694467480391333748557024237071182289152350050365872549945717169110300140454205897821934220547061920334380990822424641527017434688531615969497966956995321443885177486824601123814489897878413610571370396374557518286281256463613424589631330043204912722518316084039040263448871048842727346108989062438513455337215423023894631465007840335707913979180256218426848279288020804862652019249665334466752306523786598937017002430778585488625774002966495015368281133551343789529082463110375904414030399958981986613560260000105490510545818736417399214555102178611899156601355778547673373038522958846390862276388064992393680174936191944086481025511683564501939913773068965122939556146946807713495415764043737398117794907271347439890996553540910997811393280379169866107719829595025490977639948026583385015322125654155495452492682787117601457701083825236412273705197110200929820773787112582475711034907143847179986445677667820692301740463207546929215268248644667872715350011335041731324521936969207469337162091344459942546093791410269571029549921424390699549731978647285327359980260796758426832361894301217899674520430504501927277441153769679045614408240815919678554220619568042417351343902989686585135240102861186407835186176300263888276621026220665272462546773024920476808521165253457509128778881912836167569465240680354343996765488871046787423027423258942012352630738224433202707780236257343211920091026218789406535824967838838963032723074561281902377268021396946992967717717908230479843674788379299812873958657614948472378250871597316808561577875047504376371960781308522895864006044575816804323297859010120707936158928065521076700718297352540356694137369916605014452134423674407874027105299918049250506940258773539615991913899165231054356956643905523138240952707647545499456390464590030843513837258700888435429306273590362469001680157740367088826469994394460084532894981311691025327545365388934411575705668446713094515114866877180930999994627810185304392751459406365570044996351874180984472511429466991082672214994524911587576729888704738525439981516884081384658186115585427842194822581079074307130423082975623750912003996087642798660054419885156347544241630375955206802076189645794824129748526201823896109703970957517373114098941008610843877510622935923497541705662224972639851277869894554508415780891519142009067579229948260685979865162182953606831707644482170045475274511718811994311185611459517538007011445959821650209724247804732173414336790526286437378978310234932567864066387420110426990764810818053121411606790313902310520518843424846507996563866954884266787587686386061156685148010578493306377994273611865533075535390802761336011679642569909930902697501234694421899472920104996772549573908872781437309086577572125998552784559588822810345351073563769946775116858727642374850355540139844804381596887940115807175431167681696711342218930769895969357543049287971401612813411550068464046305839886617247192759216663380869490690634356360005478312820144922758066946633676072233097218591004873516125299985121505797218165032489290770199342418170447469477711572267135479744938523152296652746201561302179575074120355320958738475216765521376891362334888470949557810886715562288292859856333386545003227179086069114794918671990595235115275453139588556023626426669459865201841211736426113695380971274406077632160371402682143372288605691256002552923423650911380815572370485430394880131981866385483040019561071710434752934245378671242626168985991529959469408541778054519973760365216783452254132747876929123701276696256842010862256545533474066999997619782801734785090577100299351846693651158185069098971181719927367663902752098645398045917097695412022300360430280491804160084439441190534203375131359032628301739509302836413354099532776979761113919615399374250093706455368856259559711749927879401265095008066824023944681393722109592382884506793588996101815326194099384943717733672288567942281243457846670157247161439791470607827471728295948307819163968483699579072180872570050394001287309581488676248990233746903220978540151259736042651796328179742773647087143293527102702356420471667785940769391021391152663600547865688121161316034953583695205295768273166276115654824068830260615721195518319853829952166134822837938861411070018217980216465609029500989557708465420264319645301452303656548393132966055340743628281156018074773320062273313724038167451900256504077981362360328697059652660220627865863021206099583563342458656552158198645477796600618365574186883036173161697690477265447397560832792659312822791848986715428831690937316642705873283275881447077857199921536392731905769709220470110019998865348589283231884426576666291409884281674342547998622227802521754419089754523971563864463421475097184585888323762075517390283792632373756989398820842052100214736995181252219835970637568659583376969818625499771477702576997911993554201971450822755845052247407181577025643057097389961022111475998119252251508870199194879155055079601624551867895140439785927353768808221652210111568439850158779320288122971991056488952001820360315836111030868598626362206046783039460739111508977303340242074358575916793367299470904021734680570624211744905365642257659483392854153265508574905529799061289070797988077924141907027559493613142546509952586241261199074730818829277736558885233546142984466017820056760621020870724792839641238490465410770272481987827831145548912990461347352714100551383738475937355860903671256254528301816432430030836989698520509141947156221228197905471738948979385099358277659259994650267574676496081373067833266103519806328425411967266710188836958579351890468889783429901824832521162216942021097544139261390771337846211819510550783955321369999269495166066707774456671111224178598186189610437876853637750853606858330243289320612329028245923530609833416340762371928967001117081548899994767459260642728624893697212363215905656016323624951270754197022295934526905032814252067518921813301283164080112681799098781587206774335426055015265686834116703335898488355482843122905025936047116696876675132963330165548033159940333161427612025889243113010553187673268300614891302159438201847709374903808791814051471107211409566934828811328761309405575832890049696483166019230204180668877509857849708745697168567928752455931873384879310491693673304383463659532377181083531496651078350829388992860036104626479391136522320269172996243889277386939458626456538018146058239420195450360331330932105901887175253439962403788225170372407773321591927846783083649719476706343791743162031271358736291689643320924554866558915226650339005617101040307721140213230807451265515220391083034299677538157892120492201591336963736502220259944388923334549382992607558350935235210502391172920527480336950841414004528040438804599887689827416481373078951827249475889315294866669916106981235735327760657708133817077049796284137588341129237524724424896926058118489733481874370151430880687885038561530873833225706622745011138655868909317519060352470421035243158256840414174592097667762110977708633793952611629702695870616135347358901930237650244187889176695662080569401931002321790988852772492625074171471768966317463179090323348239238168358817515362160907075139688136857549490512986245472142465010873876689575391483212048112649915488762869551188060381706595764689579100829026634753656354051657064763696831747807083711153140174605676737803162259053182140774156145206488531733251160925729641617831414008839319661026828562489545718039316314752519168369193543302701133012586893429482859350124781670436983412400957500104314603026179431164159600038173902608293834384846065454526358817622413286326124133248923523838757262116380423132830510942553684622023289657775787535755164159411023220180722876770932428276513012156843978939632433263152017961981264046091345801017156014669344939106313554496808122449344328445052646910816245082859395160267928415298027043286911241743439646005118458293939447386219173393633782856834530945538936130376853376590191144338681076051602910284681452685410168918945085806887919595931007117910168686653877681634781130606703256207753323582899694548202107936130440663917786703631153173108266762178625144213357344577223393098269783231888746017875556443915544036802325565005471903477424720453343598222226911284905891052430363636573851019233783527334425822865228309757599480870316052903435859076787999828344805403550144732737515285081254668200227872429594861201218811080642761961403367261915488858442152306653861769050148385225734313032998459378077069240601281741685854190120293150849026545737738672937340324890507299218219357213033335533803792225680772065459710916239592675986941083101091199749569106697351951604998538430860991910026217687459127494336193314057491637170147339622878430830575608910064062483030715278068284796427348382162185045046100202033202255786864560610531249262975947250423936630384391965464996918666889629047739893712752831143683217457645291524053937288498028254315079327492599585258470471991834048719964332551097880900486811833670185305567332403197177796541255024251920688877471200066125309859813621704668420131346613760622990967766079719692253656416796356259994920868211699506169677888084420589477617515865823160751512332510466013303004963056394054923996834423331884216454453297404531388261207208328655173760624818323189586354159626466080741430304743709914907887302972666416006286572297937092772389328730821380834822629621105993574306301846824974952285331676454335288178617320353952928160145159131941475545044695992579513741529210452606129974301293513610424888476753246574834040862030541758474753222664150932236827277218789621139064689966839476695502515950515699178432614149578808634734834201836943358972533909949314041674900813002939286827757305911332379064793723501704448981912777056970079577985849776597797877859121500191696219535294765227059178417583632144367907920767383590137948425611503017665214767689918724147708633521997867247231255610497071096565935999163558580130677968307408601305095273598745087768154981516892032798920365631133798644140710047584930769050140500562318842187997122751417865770729281343807684630563992328832975601731350175826996205035988239074764922318629207097275399344893875709706219060140072854963960477391431161679382425610052218084040408081799202242668450580207018614925917883598437731488463691314268611892554695530510328208828394982720685546490266290300621327603872845325520731910783020139746841411974322580361136281233239801961292201909756106971373142051550669811092178400344166490731921709684923926398175030527401109489914405888564668955115510280693813138465238221773134125463755505044604136510413599769679411321310649201585564892832945881103866570538898240879432228081902591717540559144559145249094680403883453225608796994606611767033626141943574760048386766912942899765167693963451851660034071093658307624038639258862285415099111521056726789271992415864568665870579461332307485689544967209897688654289594614293313850626894849608908369790398948555521710792981266152828469891308651096641556535484040776485242584718613354110955709934710224263812349856718282214569851228891781289346764404699427411027693589568719981795448885189551554365399952454972989169030249481818327944798955053622348413324441405908550566079254846817345039035411378751493956807382271157363643843996669541008523749361852893032929879311043333981038107433878521521893381959052339319206943085661672658464869697694381254422461974269297059000137228013798204389410892026471905840520684919659872760243269163793252249217355533098294017810902377952258104208270238818672547893899246028199961464975243500891543338477981625534854520832919010913423452418486528468929404469376004181668398111128742476842231591676061125100992257527841420678666098802758511477163807388048654616195727130691238725508966128831478354364182570414259946923494437628137289000185773652999072595181382347741719660012506164959053108178649407743796934077728311676395290303710016694698960916258734799326372894407412974525320138150975049965046617552513747230139431218497761472622242265346478526290534681223060521306724812515157618570713429490501501062854532127142717204845650219574570412812499103141543140374658775346490479885582206265975931084595466643776539304590437747652852550494517289133047119503358599979803700545936808699924111497741808880127988041810551047113323332889654893334534613026054286013813222165653388522839585986973015370604774650221769977056465906428523807189561038747281848130702830540824549893134868146447581407498193699784784106016886463404084172944111513993592512381500468637321875147082009199040621729185555325784765939252201880344953874610647296010641934576323721105452886711660236813757679459751645867309772852288080328397105958504122316846040947609362781657649176579128586796570051964975450491264585964384058130625599295520295319129827320613556197273985298287406579839425644583560058306655242113598919338485564518585484897884389668135756474877198604960025654177008733842611896277929703981070252701942087414481504150403916381272428628630188069688334885225602477919843604882944478226986923150397212185738634391468139150120429106277140026932616576343849483844785893770669783328619794764872365796657577239867607669428016098634539795914969464789691384070735874533679787422129497765572565707025262530712695450666614249121242243204955209522015482352667565046840617164305376205028567230641153465829033881592831611908440348627477072397248792545992851683129267307463071058296889157015284554973592625694551355072417702294904497205178685249723291575453792431972344475523772136886937157211827768640126390929021750025803458613589979660837376141358471240266302013985476980472413223992708970324115218174331428144485869011079470416910363988902993534847326662258724638113968573028940462186765451768588582717587389600174058546434002933023784129781405995794018515898016783230587925706910918472389906933717454508753515871090523217251865600165023017257517158173665020036143609243236343043848060047150611262894520928778968436289693761353115169592695852460132806343104138002664586784940215516502879674037698545261335622237782955560577755197633953275885591266913451159655477973289284470664073698906591213638941072228414171555838247022798605567457851958337496055581897248768612704499890174808587428437092762155015950725706946201139459494872829461515599701340323168891418025245630450843128392767261863092104889838462927842285959486891258974348180754040924889266340942752429094200294539839663613589919452365764071301383955471595738509628290881300322830837414863632880074237571965958064052372147925865672594815290987310253237980640601910095371727363534368091156961968140392295369555434130150977193428632701216881203208579961089177310740250320864309574883007850932260946731956162454743451354001466341409387539343984264402429725831197697278420907041602748165116581074722763967662983430982797818145398679581924319829225596492050734174550869251452574116988864078919867251673201189235446113734371704870553500020740538068845703521305579472878093213870353665717855294333121616741797139482382472851616009969438070228689511220098151104216326417133701915471762179187363903717932031805403415068812294623820520937539411658053404918082075949144341744012238966131458717993410671186203457675898811704918257038338249740050320167835212906748016978621499369277860364945615776259798270619181034790982478092967101315506322528533080467562128897394030045474893848125257326688117301440155515825966923233225730858129832307873702140521505107613211975886573087037679699430394561148346480466509365331406253343928321817579332703530636579351519748383407684045298640313717768712196920580441084313905417092065232416183785898983790280681308716452318915034760282069112082173200296408630173619496062357083150166396003445937456271621485640127782588970327175508928858013959419800145339564998557265524781977627279989086690809654598049211477955631269799090038431118741554786653376351123924793379632494437773539432135854801749470533985750428015791848052867329994136319016428630772052909281281072204441950289854704031080291306019891110635066758482729964436611098099780742804402050633345795711645062889495532845676053296644980682280839790243041456879092484187808665068655424283169347148195237735312362923883380222703018091309429284210157800399084980368328019019891180180006559141277140073402717389617685758154395007504001320948867199528185752794676720361913796646996629080364704990975417550258264866082557001295339501902779184392168307863342445055637896218970253933164487774131349093526315383304939151772295610267541114109262257423509344411814173190943836549948706256772704908790901270631749777142113820965913088327132565870640943193849209190467124331254724380216363806420867666449465232585860950384353375206325490190540782943573013940781458883328227493794351484993739372328774525900769786159738096647837332729893988840495047171392778671529325756253739929282912872214033827910463199122716214451268964578784560025303012686135384665742595508931904049232923191783752353845974222357465324122163701795643202356475329394558588729259162652722764835932079442773961877639452864508419324779925174820159690447476592257820297963616135147966133808648001361465047491041464185321923152523934176481223000019258608514276695894170505076645960951561929735066319629617887249443006866479798468418841729912397665146887434990529724685580367479780773989481165896537844239869870411094289284952675306447959600526707278753690285951470830187353267660062590956311930769033381365549974341169627275745173634183361834177540565625787847942866375777504866739381918883288217644612167407683929799095339821505438222771931524573816638596083462881180254742085661146925317380671310256210367377959631334498633973943592665408950373921614023579608937243762005692448569750320607017519070539900018941415536906869215115016367419747892790920795038915997243597277148752372636470081645105541122570667658807286314719241274101802065946016143629203206004532864269037310866247645283946659141012900645764347907216503365295630698440789651588913057149897956524724270834313546967470460500374925850355214296805790950174314885534701916629163766881298941076321154600432064972296925761739545641152444319163453809882279544144880324511971365030211653887309716901496152368643867290353689004686065798711061114072522076871027053895998654369651705631968376415521493298708822923486521927650276988268696229206287925201774239973153574126836973058363219078217029381172495971557738205362902701062207286568186077385516967160328171940539766869777150553587680202506300868951128381009868874990694751088098154527907470594092107277760301841653724122228786697929908975798045164718121240223516137212997402565998168931314491731786384411803340020929799025912113456896041486095433610282758263624076963009480072755190373229980760289407696064875888313008631520414491686535919660333111625116832603392093676456839019716288411296902730853761467395238034100862322507915332466325860217314093766892168627564438668271153253456148855406999784314309106457731141419120508320755289249492544119699451886725454964392621657850595610241171131806843750819043338129227888141935846190981901861945976426620820439124106504900075364989150422391132377089941201935194246823506240884615810575185107113050141278864145440111614819711396555930233042679441605299328877745697572616876822742175552348388355231774787098850432362998157141674489710150980761070563269795888629775533698666888419142444072273798020341469714953671537797510366928862067895380202278378396620502342190353123849179041872445337661549920182694453438567782724589562364939998630190567153673261937153544017266040436763688827399542707190599315533634773924673681396686291018915238858573975640334718797681024967460098106179498021057364547965228861782233598139864157338013075067100906899818432326841094431809906517484312417875947862377516659891363985949577562415289085183254902609204293472185845802901912971989784296267744631105912828384900962329952709316603952917505487173521953460251633097565000301449342259579803109780540085145196318407383152879087130780844911643946585860158676178535202416072670259404871498827565847881051817009867819204089560214099582032856092753911088563350337723989757231988194800881693248518407399236422840604184814741719206143340525014404146751177221178543104008008259347495287599306456639785762713328788644361862895860496071818874250322823833132028823375581815744705445046117331724301184975754986485625561135833617142362337252766333251202036679329106429642122767394656739932888331040386259327056873014516840959630865449336682436287563333988728761346019870483339036057861123944486428462292551646136178486835324488678642521756603523160352970118272367969998961710757190064600543017018711113615125563285385906270637189590394862477847168392996601801792666019075148959360377190071912515087704652020673424887076414844397490749498097058691575828598512890341275483183992498549864830798324624803806218595696775483465019780253096139773827635757051082276654065602524823661703847324607174915848686199897117444085285465351177436815535421877774765721168259616007243122312037057238732097772148551449373530618958071460512128011105489608634069842185620791286636725945598150433431270593287183036882673366372306734583971670930245180755239141962886814701571289143250776196959404809796215255490578556618313874664086657644454710659772440569311469040131840199871738694706671613920209284934825191810573640808923707467951641248082872128510634457480032251585336431646343690979188628551490213067531250040581366436353121825170183252867990037305435852243244678924630257997042487168075167316357001059239269075330709869304546133148174701409314379611578553251653929641152865497024701007683078652312465260264772121468807767916908301571774680218108525464065520380663066115826859986600908462658015183518970697383052816613941968905517067121363774313833290945364154498275650866277320083617385732551133931752504734969766286231963371915171595429322899806313710975044309744970860816876035299326835603858903066960661926894048290865562360718097694859544152708475493832757249982569309945090173540842404255470334324609694852232518178118578283687228579752302950356925108637493504257003146482150054811233833850115202942682122961028944437240339966914312769519643059993824981980978762940573705826741315182814479322968196706821890046997818833530129842597130524717570063696963531174747976234803637329936712012403257001822086839667298904267634439280820662271509317486988209624654857333955359732020567382028133236158550232951177915812413798394081691002212112254779178862933582143507073043744941344387363299478616072435116469453342115169604291372661485560640021745387119698417684293209881343384172449671316205945998402403696918001269620198799392860365286372323684163991252823922425014875868292275896982158888712262934009577359594261337204717447274701061041274354962576751699541122425027748724091697034826043189482182746932708102947049872713902674688950227946334383045950388130506148764663229085923229451592709074471282156532449343359803494284872606398996928148258266242000199864499138268835910901709898085256640511327909676874746609205419602288894010902041264006143924293482568369957615551906712579924513920552476284692669561159820949887030500489290070971336860629674559577593873464620147071118058862496656223086756878671300344495907969038613013069436578169262698892592063656398870049471614806826402079083140988904853607431147763466366738497798162060668999208209740300178566678914238933963275582520700588153018107329247921727209069332143851511977709641452878512891340888954957904702355323084083348508969103110199057675557576654740775818952531317130436793883778265189477831145015035307669160607364873112067874646448471977026692249720202050144435940965098610038860736773435088100582108484517469927779451199776479446368339115351856054652234385521858883659536273832530568961471383192326196644243116679975327553423994305128877018599869540236198044512614461283654799345517454796235260988071940718231950276314379343482518055304655991112663684002490725425201586567330721657207052497522147354045698009028969576177390819169509923025159966655896265614023382814120313848015440921675599400962319667992169028576909983322569774696849473193805552288501646054010209978697677648660232697251669060417713403390779708309594378112391383603287916815381166819779051168504362429770565924341320630796664168301165971640455928526517454520810609116090330381194102870120908304995802185948578664289985403969457613412124147392140001413771780903074272140431904909927979222378436409771561877916165409428149600365690778885445929936548501009007915105715148643136955442184293896225589610061847395311674611554346920456874409215072758270565537303557230335112745022343018678675432421379956119760908715726164962222342294086381473246562536003951438734972872315108453613469595525984196907309442858782376910861060425689678896375337747496804330465159980131780141949855812564861069070542163618953819370474331981798456687116078810486674137113378631853692493059182599609359710899300587643912803883781930044704105177114277791124203199121285354869336387107412769900321356816229419604978352130744655265405235998793835115826157758473285942789808370392546495676177885103131097045026469718960706839797095963845002507179946715451072023954880380170662312102056045721233272978885095406537482083313569996528596920291603903514441187210820919638596470124582833219213980525704664901528914953339445927556378071279590582140530876474574963400116444918545769121152356903706263827226162130534639318711722180425732538357076754002951985680033129316793369429428437752089202315798810758477136870585842062101250183583588819308159797186978109107333987976636100211976623206887072919107166222119646897043531745189388850576365620956968869280762445838700244063748845441902059097128867017859733250501269536437100885645836269662801677074661584758616813279334603668993072421096905383368630906354130269178802071720991676156264340901021667480553095723176664698797320687385727153250345543200175173195265452290513172274329865542256273143935130104329726410651343561699529575051332829569306162660170448659362330237142432062409942424476949138329574263278045212227054027793570272041368782344449894838591235957388845722884048499659139376162822671046304835472377974596466992229628637765593574850984477506456985812414254433222728134643534244785303742001387413669160049930761719142371083646364653118971700222361299027401658189072708676505361973926422792560106492298816130550912405286752441523714552980734588717415417806900025071610353007733705583289489256041414638968665109530306765994291137842632914818982710314905388792054678772694700040984709153186570472320224358652653371482534353082475463970432580450373577233141236169902247663302164100877523857335174762577727045854283726010075907613199208455151307339268586998049834597944619319021593596593337891837595070853002433584498598815211668853748369411437359421636972477345035414041078495080566715572064000774363516790289510902658329643661983894054327473701557802062699740868202685351788050925978853770395753019510046948208009856035620801740432613824971840469077969966503538643698265685196846821578265177104337698219167080364583797571562370972447424895775843403044293956847105359563063511414838115343771220173558938757949516811349963644848980768982591654747501659901062683936123671459914161946886407570185454816543443813873526548848501908717384349336665349717702222997681261984752599571540052913847982356314620237531648255524213018321298289518136189064149904224520309367386189386783738199870869613541529856975175782651210769384333123401571009629391134182951422177788772006478672479338406352971462135708957589486825550216365761610279824062339562446731322891704592156321769992499905775709690514890283889885976325773446588900127689805438340477471939919750914841647971693440194123802789300636248851083596332840319119502100486546124665258178371242453991916042458963857260182290918771788942345338215877729902872341685616256845565385603171237960998758771966320785820819021834470726218773036258122127310153971898190404203441670926196319959599126606403754741057332900650685911611191878129955415360774123620450757395619722188554340261963920971502717396777476276804962385258166524195922433059435116176165783197306880473814843789547281510364836802162462421492327069655855517705243319397142679464954176540654221081777312109428329402035361334495419994281638099308567250192298149376015921297865740399345535076472999254837070213230882998976038300668458638207247525737430694013570527670782125993353571627343924132037061572616942963226045417061799838058035181573488279102241454098193516798748336315871747916001100349225492586800505021644631601208717278233000009747031059128575878183804561562130465664247139128420962730129945372616399827062166804989508294896946732300237582834670928607919434738432112802906590328349744287698726124352503602852612213082947508100639179240896397531157909550025885459844198360395087479563985953071784950689178395791090488736869372826264732638246831425718727820623192593377241874118685319441289332112331218864677287696206542296818850474410891485826951809011321948250801379187359920973393551270288893921175190376470582517943653852439744050646133713665534094402324965543851810776500125898410150374406727845816310340680846715888784564261158807808980159049554996658642078101145313618076892167198735388468357992014796844699001423586361117441810133205817351517817171767515312359935674854476936701168107446594527756639757724898498124598443544446100960824593630035257662791246705291283850101125225754846432015593857603910961328703503761400857181418860034334446469155592248102270238416941499366869559079245534387823052272544171255999038637532190267811979059112207448660929306371706072583097932854680411106838609044186366218592916025765388098503405721355303314850236618470306408567738728430372913491884446573917296216031866838193593771538803229796174039703786314855051524453947310633028064865103042764568501116076391565423193412127749962203158506288938756889220702940374836390181602381889696422020549182271580861585256623212322377873684055413785148820700189958124013679716581936388152510782338679155446194674918741678475068066212807239738568555832595288308280722499325212150191072529782679179539054501582007415961360975048850239097174230428973647322979644304653179517538815471510862019301720528222273464261456076092528965128511116715074823290222137335914362170737591901493042424131790091870274239255317540273419551638536464667984668441334834199164466806342157701550534099852396139097441926925182490811691128174296283892547246837233592413911590480804938893061431285868180506552460663680703968858808935508113867962803462460808479050306470826521323439158495760955037081430006414868290493832370506313043992062557530424549652532682909489227486500642050446681421489952167763192063014835464806125709602940178803026516841404584341167484158981439795428866214032836312880265475829083956721818786054087545618604781093073812865826286824572322804949308138585388557928581255112562271013715668715217841282367516491624882666536245031564391654881724507269726888152200799557871865105664227460236804122811265436073721257741154631271704925672450316104226843269692365818467530226243886957834367158416093503160052431646572934022046166366912334265276731786773862595480123570922311480084970651606799899978647302508190369248878849339945248235464679446231327499889446623933724795652807652235771922976081833382437568598036256881397772614146163738745074324538044248901516962065493033135858102834644202546413633803206679772546263502993311290218254203757826514498716834023753058572698834649384357898958497591442845824187368952916351274240899316239541299775010435601412723962553829924575774070582558799987577485412627385916261866725905219645275053997390771008828125621472532630981284098673301050160293443605933024209460735902097208415056218575283907900896763763670897982608725225125622958556608531647971765642091642525514498903488357641579739872699004609365096960738333607399283424080932768906712242161665875172822962451016507762312460657900783441231930619003183101736729388270727135490501841434794560677931712721402474380019880503481090146379237613429792480784368610186269758074170997188700543706750117781255574972318776657306472947844222368411930656629162510921701579188553229976207808956769256404084175530741171756608078853550195946384089005208250165008535744103132101419934461305011462363223980028176668482601900839134476532629805483912178217129058811505016347559061233561499125592824734699502481841179878924605860742955890978673996440729205094293923607218335514168381513460676927214683969506923837493772743935580935413584835849061207245475442162266270308191031357866959590715610792286436789698064943305897494825100787187767372741913433777765197340430573241577569483419015818457251183006942281628379999464363864955483302948546022260303284860932718664746406727185697048555630896298628301743201732410243097823981976098842260265354377879515175319291267936132129045542419809242059270354516079351979828372030704405182707008240841329750167010144023801158786849495413716745053092826472506276519130154583208625653836112411666715217133582968076656796690796612756557721624875244108195773018348639886837787336518665327371118664237103307833366497761441055995829652861720145991167809201920874609793509259776336706085237452496625444868622745398779806391324330209118720361719293354386818123935755733230317442067605768276079847948503577373802624205047970327311082322635257938991373343824793227127501931093677086436189101668293849131160997250768426085112734186437141034086367965567907213060876382838380417672100237305568407048371137969193651347133289505262723898595139960941563652264667831488200025771712020870795600798404632858288728041327338602092111969678761977761968862435823788355328158987523274269923021250348866978843373333725470040046883613443683890577002898056705215156584780461324080540784120823824325821324581017813275770772304089485645765398988191549777626661433723079952275844636437831441292416762417806361105163736041989313361622770422897325237709006763510044665457104554400210649765339217670712505747043777948962192528460727150895126488619538775258355615059868758759876497900131390818864934726696045068150711791607902930684262822911778477669366467029516536972662459887973451395130633209637286652686122085680611616196709693613041901921091239084284982917054641283104488880737860062783999423789877644312481396777600707644306346509148868027642907354893431850299317295070664537173611229076211375227341731570299023464225751153426149053708829210534654840804180680052922568762589624729791880083888356829757296184102202951430359457060199138781833958412352954585046552523371335263564824431103593198262028399013745284011097561007659718188869856608769432171420354589259398267325944711663802100226075924867625216556710495393397319899842455262650441772405978406595703384216682812485640402431004568924346888495259196356381779627787799398785182282815404485877524523635533793048178199374342200246062133042363330832585837775015595730057677529323896947821780825598581361730803994784203973996694167480211624055912498450034501507848154384313593150640002555428609562659194811366979856579025654861559110829889398088714513200700093253419698328582326931605708385185747574946362577850141425596060260248985044904676376331163159628032474820948557385136170307467554325366812865291946997012009752390143651881365901766847739865377478041452403067605264204080081607932562313440021542443040456308853192656373578270211828250540407873543440070959601636429368581924913485652563239295628687227935467299519942532852740120916637090571734381385939720152536853592165493919395094582255829542789252335391126045209407745216348833669840988084762574616394766739477577461009671604525819286811074099237530582685906198970537004856504729249044847094189913370639659497393710779981484905168249302571898258871089756862470187987814545477482495043567862371097149756556262396225470690607964853352022403891557235703378815117504948478874329443093339178950002865944441600840114243399876748295166706705106522166330661537119646687172531288472189730165796941007051045550836340771507859184844864420286045424458468717539265408727625825995980760204621538475700388602023010358923277816842540231290180708123716997930655432481863802924550710651492147893035582341753228276020623936817096384603059541537237066560824848286771060135851489117725004061903412532780719970760126814402678161701705090945068140654195564814162924084811564814141761378985505773722924681205934026419425109780207229834942010246226469039761856508499323771893549135763520239897373046398874820025393380075863056323513488014615559807790709892859133192563740941017971914949972254364100959433192457694846702740890463294145363168933237811618512937121124788285562499712890452270001592878225350895399541640189323812066020957768236284686068261508212370100599511610099796421624547913558431853340414826723051018488513926525150055651381637809892073299859420761992055870960088930842345781460291461872584614964202081169920841256180751510939982576178867838791847431618300739242547121725007223730764396087944579800629791383168228542638471542891261044800465943907229912194065600160691621158560446218849973981875649717779233641326617342770094238983289224167181414431971485549585993443370652489885065968864311496182901909442883155195824362772160756389065057753083261617174259080870215416394422089036288239862506435541124037295668243864967807462061911040502718503228328848837945982570029286564448481568043782546121202621602194906191009696993828214733726509180204230740001756198906412770509856863475958028914764266515375958026188900247635486442877880694442242749025236205585175558410701947222985951180002544657950662750575097767936623065834336448704387184392163564165881890417708435125455660109132785761865642343229076147764384062083828580145912001544656795444541029048910829924599209452636152054943833553791885750458519081599856961114673658642570836942127809081677434435431678906695084558848826348079652129509441944466781354138490469652791595956940399271842747837879627081351695009542334080419414291754224438745713459086249737626614546883848294519416210341544204885158104890851753479763012884856142879961780765581336309140101008564396964616283206853123006291481039171199604852504684962421521349890839320692290157915167313136995276392619155341445414099051870290516058412479316597809000295076082547500223269607727947665950190469239257262965282353724243727467153643233751227236445878569930533567111598488337505156711606062740780632919525003821898924510230653593784343563639135923676189900510963947278770494797831287125851267554442254264124421456035705781875742622087282464282530052683935341620186688036644412078043499564466220816193916325179623192160971633642101879091537773124300917092089795587702457291294704784404508827158710926457388925471694830746699300008249453657713173179130179373210239947132448730709092028642128883026065163562878546990885733437173330648112020540459996563081026236174806480314009872245974751249602642924388163335736453800288071913501447826802261577786473897587372813774555247130705625408442253814678578879707079617414487463085028553732072571101424611832730112339165647372391583845347806542305275942539986852582381050217184744041580778157954750449587431007637277304759265100064219741782464347450277138731918983629581145592956903170569383024980097836960377175050252436384570650842683361247259908229423329179968516719400806737452512418071376156910516235449107478293337441608876184277697733883959103017931832110888052966422010725774222903572606385278363295526977247566077446239650024142082084553499893204897543687918789041602086766112388994414546232560426410928993490247345901071261030555259008661350776443505145708549012385996570550578696946500720757860532123530478302776699018074870210226824053480769808073110257997979988605141674065056890029566455975329301019973261555775011000372654902999585943134484241086640876613046611369223539141887109298991327760712805165410594145774538088611002066268404829210913248384474158778660806536084987896135687216489948402895005927601070616862340325357597599304646825069026081719257521080345577548501352732537706212026260331006595172270452671405770365529299748647774175242419043663802203977479136780812773556246806580238368740435658129327809655803206226672109912756427487208594482557880545568662097378706943439109821448437103872266189384109214221356473044349872797857217615897253837512486845219735778931473899491843697053644881809447453226080615963429320053861941937499240463964980414165265232924557584268221918877360725319607565297905537427075178860200036755895625500019784597239505216556345095238678095104950197576561854777709725752623738705152396422362715274774008302762170949662688581597027885606454479483600359775906278911779729193674348123297362170792357255056484220396525837636135021553283712613260515492655812331284577633304500542291522590547000472551318068995187877517376313837727983068106374131438202820070151799541980498654610370914843246056236186275195723150930752270770229115268683718811552815339638548864731686304229015214223565169331647220310625633498221976683151627152084702578709153777150782953281603281053292246620473672903477408575917535857254563678276492920120995982083453546828786637485593969630101244578289093972707488545976645528549136343999412360210053826731562011157741342951144749704642903042536970676819616622101062964714693940283298152265291802448753068066349373099622566664467094918611311047464357020934510524276290501176081107803690530797063816189316870382818470710286446714203091028687202352188968553246135541924465125807590300624865141410098531681792261377466058979801928057892586927288335970536943616219911182997930787167508779989489182610886657784270873121977230451265809881197633497175048620104512008007911653525572371944964781392198968695257556511678749360201656332865524449236149811099100734991705526991929231427549200346175030754027297230744649863000984849061441258341780680399459173842164861394749404038419812623468143726222930953588692711152426109615764689232587249456518788979645108637909889467701289910317259254714537721779695794751399374342493064233213679518887395489379281268713774387073640154384674736534053533148084144699875595555299733759824000354734350765729970258240707750725375896451885895240584940393650946404826233088839399880737133033623333785616209712696266150835942531345092738694290558798533869101456428837537599363500069974909390375825793414910234905121680931778512547287887794555610170551544470338167679427744418289643318095223773372238967915264795346558783311759440367323995179260920822208797548444786910690557567849532493046969082458162797538098251915990590879670607391247834800573986717791318292027172618805999730061747895823839833534157442386855959499134718513889229972185996884069088497119721082042440671246378937462928401305259029508839305286603255472449885305321211240792110820522249675037405040038262443403187928716796742320948570772992739315873422265131295814062706966719504258874789575243018379189328308908153605841817384720923740235406222232980105459648239079279885884587736156181387644331056285368073196840133639015673486143713574473304952451204763139156312118270822279777967283230186623945291487044782706707018647706974632791574980129477317800481150265917435534866371204080043540303956900218801018284469335183229104276535381129523730432364059148981182919863614173751179685376825881110242850984453769296353481357606577242189967057689074069128708025094232444371251362051226160835585899051141024106485650442905272343956461657767269424261927596957347202251591918106515993875960552428692580005742629229154713984921518878861076716894392971723764092131925307019415925739815156181391171943142107791756437534914066754250430195425139668138192248420972765194554647382130902921297658097304135142249147658816871123775765590282782548111594664703671676485986067364013525905091162513088854632836565087429880967860175044951511346134373235673766084137680367804042771635730333079203678767195471750847465177163660407585417011905586765579280370164249938123943189110455869550464502623951871328192029294574652251214614734590258127509716320412912946686912677746515228259284208910771203626966257379396869930708099138315644023627355369107013014551147757248106776718451145016249189356309743806484817395126646686001326658404424162910283792074712883781009923982966903479436962361020329000578986903813104606194730665647106041758700303933552640478003844997357841358435036077020188908910082901179611408727116601775247719115026077841913637966431224223468043602898210405781088818727909743693707446562503186086924231216042774797838271631436874564231741522733454580258685217881642297569436748390856814098511554361136161002252468596607542615284320183996558986305628390537738755366734151908859055965088295306542571076617131015460082701200145147296993254488017137284482652758864574849104892048455521504457063751401570710364332756988230253636368507765785311448695315358541804548173554627509283288181353587022669176145344422996364229064188917684808957127431998378852377452047536871975586271950716895187797319336109782875687387342101129645748421356889482879617543687800720672588828413078117432458171923469563360203774952971741954709117910931663977070563748636530729516070238943316498680890849328241343106042770466980343376157768997707667392493881661231173551643951010714130408085051123728892011800982527157884669928279157258173074090841979775942770074237975426542607570809018820673188339793655275759561439868088665116543937143502714517533906157625436821492500387621148472155746141260268328519915138127325375465947988752958809174514574772999695016697655405998412782055831525757608246747364322915830271740020752715433048998081145042222249068090090726704885795288960843237135496734725385684772283518701115793423602666157657886929593587801504053142906402107029574217689052466623266681971650371960497407762973547073859484553664612986677345482448356907840328998333943607171742916883477320203315260904388489864028738805894789618412001734856588574848387612369161093742257903831254497233637444348729811371122038807314798780185698711678299087848542979310784227469941175893793739578690930464292726941437313034946428840304656445013124502582448494806638460622445764321362725455188800373282490521378344403918611466174303835150219012186775456071443802099780943995917198316414015692408208113847345909650962704074584699261031486897543546377532622525872517115828838179517822173414880027514306609023126343580544888891647851865093870025785722305159593497861230227739683300109732615680714044622930573201337050582482825561459136598852249638549930982254801555612461183409719190664556943712119344851905115305313535624031851392160101499914108137904510805469904377782185642446471696917021571600985299260487658852225702326087360744465787706675772432491529869349098108008142533426298502431828237415536823067066767867179505752392977670577488698414370344495139045010203945696916931613673147755826427101799224639206576628812454409320568983120429188644156129196734957794686630351166340971431915408033416452086252479906360180519145892451133586857398144599586540934825438100523524477730618173773885197082457330270219460451132703136174760914862495064358005010408441976634330916178254466787610987998022353470017148473585874214104536457276971598149866568730850904236863177729105244037114058187311941293428717201396579259732404718238774126680362904951059158573860460785856522381612013078398108673399118678255833741720668469304209981870712453736101928562384250348569063051576035610062417382377556138175615921887611757716958078992066758596278972026302816730884464485709218059328438228166155232342155593736206252065957911288189578813437948811835949635688817578754587220035905640646002371850536124930889920368038613477978707362094924839268554703816343492088449161753376221956708717116814821969522889093290970086985327646788759959813551716392841484782752792129676754491420460132823594888335602840893107107581431188855203960846784493960445051921674351542913993464860665528947273918130344700958291193470893626134050507141515189445580751663666252774425812436974719898096649617866175991683861799181866764305294039619899707538576647674010731257341428670144000497195789713821233681192865506614165315330611351837445119396427210039155164151057006330420662206643531881470430571807741945346655657288277380506922591840855853587156624762687477985135532968109206875717041589996553552643335516327373892976339290040841913525687368850791345666788273951035183676658350950263836882039509732126580500021920066156139954897501200095812510735423150358414669881114417797931355607422324313497302917168037187384512355457702391533170869757137883161502309214702027387118737703455930489150974711827721834010836236161730789454962249218125718087344335085771074920668660852736161937673462155840185903403430085560200999907625392460735440996328024022097811790342394294682151956626321963133749382487065540356479813359340898661995172332616371708064384002505819014831354877830465812931485166698962877784290069730233680383025271736671312748820117894337999836424384150486889981170668688144128396517964300328780131968118146442535732725464527504916588419689352639053074142848937099375082928388943079823018079910779124473239488611657095549090702173938202378444806829517210426878124985195145108114447011279409108394761506293239927665635004673223773030421056602305676647006117814071492217195890568842129905291332087135659772034286383443138516879668199200308378829533067248469225809984121678139108229228152130902665153619006226725909548799395814569461585212786389776359512852297144315892235255690033506788263123107453031154352539918775677490546868694253249082880646141773030239628200256211637622068010257635817148981270437492599517268924989925106449171984520902656114042756920922686121622059211914173202358409328984588513092224318084920676493210436039739471691677532296348304711933720099130215181057790882229920579651193088035879673678460694902719894740816219462886209866346044065911533646714314695235479160515431720337203031325034926688571428149524673703397651956210148607448857436696597551562270813897746179903354051542241998765620740292400169512995504590419610479280072063937115294082730448208040008805564351430506569502326649084533927389175564784309662752139875067696705286708250099796922581088260102817946565693785741496263014732383710643520107731495552496515153154071940061539284947531863116617953773295167044850651354067569972135334652312800465735227136796292543854060503135664777328690658342710665411682822232511606826237872432117318584757789088661416040351746761337872040546066772000911318462633102415885755335963803124087522842030919736405797508915626033211052795624365655174732033210567984846417634325446515763087333121525734688925347508214194591851265486177947051269235021326397440717520557424907000092362749966453130693677463681661282648609463883636883173626673453931978710679527088553622006473327759433048252795935049267447991635395559409290963139762258971126982939685740048722200950527640931642848415771566969995363162820138438295513891316369110040126766230717325858289757090645060792664581273536608905869679337521118637150911188162965762385891431093795372343001685906653050471439273905189745786065453910416999951269622459570970375445672089027170815539501813795210057568120927417036577929165599587642039661416955838567857572192268985905451829163160159173779443765758811407969130656300596344418981160423474720524960940185140240676473751340110575089876442920507582604381677677023586405189320432583449154924772635924209858707855079217029782954218622549370477534613206602890732488410135598312997894644828122495196170907158920098980266379571311855077835996822471688150805389195915617517807756244892684483887962443265818089767389383232987860627569449083367276836565810529814097488829820924419664089539415027114374068014956043302350405651670519066959521439598874126804325816841294546187903838992348920990841317481833702572226640940445867378077096739077186538802024563013527009298216105369552853282360045724228057060337438662749764808880610696710720374940817323157896948645529049792438656509763390202622829407511397926346716019263205498381617223375146728377484069298425071000966391147058856099395093433334660282273334757755818270557188731073223191276492874774095618184155870729891969758329010963502561098795195146463956258303701782332756909488558000313294813058818430869074637472489876228954629115567077669622437818550826916916914781481576126944911823804895562584719083922395568951473048708830580320922456730449032432652293186717634783274720023765712644460700346398019308389405468532849081370604428502538871287192212963935202372856387563385877454479086365966267030386399636973499196491919390107652998789327872375854926980555498025419911582709927152862949862851125503888229586264671710184875908955281749044618965978349098087837191420725333014660977242789724480940700382673508798756858562024043533156559469788834301793981717136705060730848933575705077635913921411122170708533832134582690967076936284695585807346505513396749341158085506346887168022895075034872014259260003347338704203506755628557909202121722901287227818191883948451393009353505680619707374181642387242971046147908322613504399862893946129261692080146425679745324595112471288251547588789248017622202545290578444572372805349056262464376368085508470827968746748467633597893852210487524713828104029653420898596616645613347586012541668866807462368679698680993459448343117714144163526131893272137804696137807751561182868627215037429917948386609874282387818920007223864442547070104770069505587146280020241859435209544312202568575174886696792066423349420202072181702079122800710148770477954140563512617361709230695334352450428088706052105024936119294474311721882820415704999573739361695480590370379266397578578489662594347344339798896041490747729149783085138904318002510732740268733731521401226578010468138057934883538897516293503503788185859377564183476042640100388525672791743287970776862413095822537880901474150082921458134480799979281615485368815100480477362914427497804412137935784328462947373365216355920415835663825613574538424987871225404601062175255237975339683915006187115512215793221460444302225690529395689876600650825054616624129403971039062833390802844502567088499957923985609288974806444201065477358593785230601158156743314857266242491054875877261308422513064270735768751687145598911000152129820262236023321972292647426439930371417808279516950648828777463894922881331436258117313313811440283170983378151802390472811765422420209157952158269615074423179049677844771406936115053395681674527631213473384620500672473078924568863466834583854928400410968866818265054257235720357770168885442737178467121038860910343733740486280330466325763780753404781080856049024877363949959036608359775075535193092697767396775553576662013736001267209192036128091905077508919569779136584273818578059758804694040895143492145833626453126073214401797120471556664260653224411339492314730690755404034395395011026828992321518477991472885813283521980641176903574432236795289479138497712674407164662083355141916298517360993244691569026103418444367928003329645512059911207274839534928506282718775011276200545242181397022485822696415184437178144776251746070049804311033519770726683656353565767485784415369776127785772835125852213283800270185256804909863358788459590678130070053467916108318578675242011656648222867488040237451045083059027584036562907304183870566919011546317065367010384917117298813103932852232516179454707149870262904075179791452455963683217974637187140376690758107609095617942459860404168586177758517448583831576370039346725898901028469577634840829319875015734848629222637250943776723486206451425362833339638144167267097959895753660161023704335561415104896783065782557861628528543869575206446862231792103631875670712314951198237841397891115794163344931281133259291620753365128153915402631507229206058135578706319944773090933852976168968759532519971846749885478516065947962662041862865094461106731905131557132917816595970810895355534944071036787106385306093624559759068741376416575748065942846218032219553888950813455512455377360918971925995934662018821602718736785635144215375609035305040197121448740036833089974641159606513292932943580587434638904134474713538334942042641701136530787257948813305904982844707925462971002321685309574803713388412646418505334186230563502144561689622077894672516501227365038375542288211767888643256585821987031090638741320705414078865231106048714480592262966358366652624325127775986136904750990870033892960698846462037702177952801439923503869029746830944003600215517972962927402015706593856883997723632119661725490467248296401044326550483275364157726839119591912217985048736002259763114992667477394942977843302282531226779289358578950531020797460504903361459958329117783496019450921550081734242054839070559551838604094861381301565839057912201050438617924786028524562075185936618486676122531243865778275028409168718886622805393806790331114045181181913908512560904078547303412240089217308514094122686926744033935207696404752015699919702336201099182983167472232751239011424451018593112452620599369716609901442249965653620305060523351951678288820264661947474694712167669557117224242479000672515971580163794543320868372693365107308211278385199155822630934667230010955787311723970086462583138510670380775047900762140518555557667416815216362866269942602277582515313317284668806625398756238414250331172895200625088639053374916792722830900728825309942298312663020150852482826652950699194514492378482732160684563412446440788577689164559444731359358407339760209455898200475186107125556040518664555314505758212549289088080814648589774593694458638104515635774969877703656715018666162273855808903911175290498484393297770164919420117416095849808205140614007050355543866857024916297637138722733030958972100627233232033117283265695737910539372279042762414467654713643200863253576701208146122908863796283876388893184360060368069692359091551263871232681878253627776535022851357188676805925923192907373054588471850135495658241271710885884600660336998019987420282966546333365856162178944094072071726738274453553799782648330292060717768063992112050868187065001401954175456042649115576180077040964714777616365381615964484929205019942744356776742830355217713392802991422745428124844946391642918595859525017268919944564787681587468019134026191350654005657046357436630936557036329142451777061511734469288235924904877114328628475124487973693507489134986085352216779089388884359271986196910550493002818905403724485780091011349391827302538304409075364604655534832968613375634545150880467148116065741278143600483736750314738913178812602089446058027181205652478271537214070018142123426605326518611800581714564439460310146658750877430003972220986611977804076410072511057639072002433759729571945262138089257111092459907199855634244990714167795519630509981004890852357726386008688298131790913048596587775869396610877147818722496826774291919820442765398276682632814613523542248975140154309292964220074974020539920575010457062286636193189822295759404809815903343675356317841341364327646664911935628843924538922993119110043717574638560402502340521920777730455102253027785421304264288191445755030677938049179131714335118841398718108252185824373835998063820282974959856066897642391195147113536880371891364995438402415740724805206245580951444682840176269429947869898382085489785675341964354482367206016087406561945389720375077297128189419528239816504053791606955504061595161728889446150304433082503400893755405022553164202978660218088395549373125830009610947272272617307844051332492013601879446379610982354960556914389947945393836461622689552094620327573207360937863808748089299712958029474657334121519529537969707866660078011915688609034116348846084463972631869023649360505078016664683837530851417423954205966246050041457931558767446829152408806131364405287221748217114593508569580103168047337449773601604920980293008973135989234695341671316729852165850413488119627705493266706256367056353674634407962172657648434358163195841298952096144803171195176336201582318227042971731695886890333885964394000248498246161265547823047967208511329185637994322481337911531876402472086642139194937962902507167172284267603489913359047241957302356519245556987616376119252417134586623266234222182335451451237715441426678829377216982135989434315973140812806313929343845759121416791540399214027307595583425965724565885546847086384364912927173869334732883207663690470492751635525650362606880498195228810091026233328638750312987327013611339550656538997159993343505569757282391821209661112856837277550259779965197124553519318034943706704521405603874315292403631843022843083534770633800863700107807566606048471846469698933164029068293792212196963854090602297773845511113628179601362964048222244526778951659632086514565837866409322626241831157371959472250434683800442009614445837374449780692060463332762825292061940722810618109725038522304351518623042235215923078486298743113159889973798299796591003145849051138155044820731351356933655948286325187276214469190179808188717980281800306902478827904695498136644694680961393123419735861918295303625096585270603438992368707970240454439921581308576753122554048420881330805346676832149308558366640793468903848017252806386873449129937838422729230853546218020468381473885961318414748996982178435220916364183399582512758580284112518224300434793993716085219613776816385058572989512284889640052661569475210064517531413346449502103977083609371320958515088660736717849844553198494672816733693753091967579307694545727705607321133585285933589017859093931110190506603530949024778903908708685597668267626354684416331007754317882964888548282193674564566965606995287656330533664616288417060618890640466140982340010005927235567162173271582531199193157535845805807338902821190143428948393914955252967822212989276610918910953066577146741836383877030622152831617270894955086494205156513101158561412337316756345693305257690314806317736786874272542196805616147857767378643492960963670001618354269880526528081806681026219174838126092690693909260217721499425372158310214827306052501319880425681309966244774687992349595196032017441868914067111278450339573699219781031945396409430746476595028984273428134858626309190728265947001780064789142353762441461519158839937753957174960325241544641547263470629874114012625026927611850618014264868163182096222398483856012031698383101157153574103784132862974180169279333768259653212162188296735358359038381036178703348342974990257918358428587193670764539857948885126219599640939952261989835810675403224766220072410290591678268751914465011107818928072035613677365942059361535779125180512676370507746365690382460210186280452850720328684457197087354474973914096992616766552631119514545614161632839912682804177464471293156990809295219130796025174854029744378631031334850547036700021099209155530167787620831959370131661373367255062458789281221909055182933136959960321712083262539431887575010414840066927524280864756958586950017253811485013822615624255142585282446972636377970622590695725221575722741916323083528603781002333690031078770973809741946643111315179558167775745220016353867674299308521360726232899830746926475239118733377702527351340988647311433281825261932356098723481554314010927527958742936124193748026051747551729829857465616657738951584521225463167982734356489468524728929000969494548827759144449783351151216872943434597989558638583868857937846698440720177710725542988852470229751165773845189409703814830270997877613712836097951882234525434162442005760213178516826358216089116851649046646594430804455756670289751570480569648711723758244048279208877635590485230137796431648749545642976013033341553285663718826690465874807514810302420740319450324694560594798033993878856561128878374262334694261837792098676688752075679508230868173894781219948906184374832467408387605030720964336071069835625984705172077412555865735518929925405822281907688450816522716412413371076838927591582929906429738453392711096780936194841778996835091579217327460421056322127043828433232118924390109278446797526603733610978750180037405171079239325331009243407968775139941241568159691848487435886163154326594423553722856494985635692875432661487445352178056900363116162566752243502888916764142879735361106297976365842529227488955981362727781688993990168602746786265492838406233548148738748079403193778881597426602900413514463239016767372208402733648229771600629063986863594450311855386837324965662161397723931646541456107131183132717090903280144250100970623587085831210479417402080586963850857294022273516779987351743342365719301782375818629374703101162758662639064580127132715724848201319489380162079200476560986498694858173969302922381484425282844051349335989343195939768028717730074470739047989057026396415232483246093862818767577841174414998629437080248090749481834764780908460268822696388305317754977627605997069729123365025930122472176361848885043521692200071122553797940283443002832718043396688822199254604870899132520875730582502852229929171610048999704630499628771737451475297544879791738845643421596006960201504817352871777504977215883908661653931647316119336939620641473173479543318788751833890348355101687639260754968656149909983438121055849568711922675501876105284291318593629834565498964252901912137670160706883154867272896130810399406866465347280135128070066296579918165720312952391369831735114731124095448374194682312310802894024896289771701780971656242139887707830485679229626992685306172314731178366985088988697311267988606924908595183419488440768955486303537720106492414027802184452727016286605550172390063084421384355159233842234397671067113755639808806004201164272031413796718222924525922085465321083051984022678731977935786543293463042775504751457047476137804478711624990513669804125676813864816075977298220908044559467402941646942501126459421474034795134629736366049558444716643287451401968774704451561025946191734003876941093938497470429782168783841521095845819290354266315893099383759021983981831184280936562276779755723019728569719680564818685378192043872835432978809277449574808788499080078024272748944036155968534798431141066641126265854148055385962252705175661289769988832337237696236378386845734020338591148295817799754864841250942395124316927736985867686404505069742271183500283556709990166432685103490521430437404537265496339651273050475003026403052393671