Factorial de 100.000 (100.000! = 1x2x3x...x100.000)


Creditos: en numberempire.com pueden procesar numeros tan grandes como estos:
primos (con un numero primo de digits) sueltos:
1111111111111111111 - 19d
22333555557777777111111111111111111111113131313131313131313131313171717171717171717171717171717171737 - 101d(un primo mayor de Google)
23571113171923293137414347535961677173798389971011031071091131271311371391491511571631671731791811951 - 101d
11111111111111111111111 - 23d
100000000000000000000000000000000000000000000000000000000000000000000000000000000000000000__________________________________________________________________________
Quieren ver un numero extremadamente grande completico, olvidensen de Google, el cual solo es
10000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000, miren el factorial de cienmil:
100.000!=

282422940796034787429342157802453551847749492609122485057891808654297795090106301787255177141383116361071361173736196295147499618312391802272607340909383242200555696886678403803773794449612683801478751119669063860449261445381113700901607668664054071705659522612980419583567789090475415128711408369242515352930962606722710387442460886354543639829317477617755326218511264748558649181803815198771612196815141299023044638240688965083575002296499396423642566352716149352078013312029433930594819960435396942025476101873825217271196652422246297861322189750497401951716531530489874836050566952715480176512162138004109816807973453547851752024621945048345013773263106939093503598859882632105284141400157567860960902916507469661354526253073254753021568307154042497002972104246465771375056165817285155172162886760664481809818584564912091230268276814735122529591235669762238475328261577004694811496484849130195367134000180314340123805113681738352960473617823635909003244429795068802004254970758174281092005158711327254197639554499656432056106623380994410799650902398350586882625410150443704843206961462083005816220324454576569231875656551422293214506678896845816640343121754212038426090685838144961453489961923190046797796308707719929652309584960082556780958296791283789966675447263199013505989637862374963800260272127128037200719033253186120858094266918431881337980617239139137114245254153800919548217812710341905740476779094740854858530033946172680582615328659887106952263330468827615629858602510451590068843654977009185913140793363000942668724501859057161729103193649099109822821711130341888141941687410590410475455692193109386361415798375794169404552793893710938418235248346919097734922951259530713983285625448121791527050465959586546569547790200921783708162223991266656987308397963624962103761492334713276006930239921767351189105777415640911533752373779673916429987450163946585819965929983346660593016478263498604798628721111894863117000772993346787953310220878530290648476822024708772269788272257031012931759997541521860804376624003873537626890537557154004255403202177483686759963361315950042388994996418545778570710502568481184751439776307538196819708180935397940672329203689089227832007636933584065841714984158794858910969459056728997137984158516435496292227504389486181530204393452474630082764988777658865743080878754134130765915035722567320640813914029796349374270078284010329992925669086060220833159837528199991567187090163015291647191159479204558965417410862772471495393333025963876645211619312708832826305837940728247756491706777202157961373155663885811745788295711820341714077145294755357971081826697579873659133078386828575950347678237073137593107873854008468837899255366311624794250475126151046345706119524760822589914708897304849971435146770512058722270488112389401556308424232556658223452402325006418462959220347702325443166367883452423478635184086837755661044123531454471246930992405497238421581843120167560390503171997252456565785837758085775387529658761184319671901142833159618637122990436410192510459017489948573518475453896693613659645282086360024277604287857599726723678935094331048116378113707306165770191361515521054441347318851961634723430990523912336257403317010212096103861184386806359785349127727593113761551258358808614360969607841454353116047365554229590997873608578197654858691826636593016697288361831875275856810577567596606763126184490874548409932324726078166100187724244757848275732563461928067682580630002570296751795768792407701032782595005183368759286860926612353119586640642428285651821772240536237010892730098036614770007648686359713706574824206641880599601915205841693753957294054084857204841831197265363753939229260712232944554611404383060888845547226298252195932257959667668309579857138951358761120788065796978940057188190625921073531729251601957756390799947016097255416651336711781688331932184066063656859643281522507837260873659224387757526520078121283388161858675038858400365201667540639277811511186845819938689426257502802207240747022972980730076930535029903070899293296865849997037735704761124158982141278088207158621549760020446798513900334937790154698590288457045409751455845177338481200596998648026235232799445385046007693760873462665901520220612343557675048061628152457315730296639945119682383464375771890306324095940259138092224059791689317622912410177157040072689673241440589535590593375249745966655514635547920171085610446471744694269973501520448136651011317328658643298993682805822454179135860912816994260948758174587918890145490768762649244561266426841974646694485701113528459466477870566933290668319121167959284389170776375646983060772694644615709882721128631818163396343398262227877788091630167407360509936042661867537954987259562003258268230421976194052682131566152586834177567346014051089011456606513177738415224829459289219692508170770895606029637741178735326627660032478731918729378378013814827001517979598703242487018587647135810945531847653089073037324577902849419898673894351706414956480499059409300627765773528274532936483923037703678612601187719954332314231713419249883953295981589714306968231116906370988098058235000975793570975215969154652930959250160824797382897350773879521122871290632994955003864323842405198883020624868122540696455260185356181470512812957520917682763403844936986046059063527688119975666815692770560826053268892931724994399563296664008743415086885352214046816338991396214807237713084359012848535609796324423425859733500241360640967893587285042983408888409587469218486962113910295616515153817005882301345482450658303772041496940872799532073261898445939072317237277350522555587049404830641223352834338872134954000650105743984817294230949975308564835431118302937724907165616050301893136266676233450797415341663220568811564675264727591098110191438375359805377048098340081351522850573372268365954470623323909229304574862756501877579478434989872252804159600973119608142468625478343437554225975554813092352401365581937760177559340881090009633039583974210256948216207838742903575920172547274447158460461400441945102707634190036508878336930924531980474322409527336590420497422402633882516984611522338985832871341222746171532132590783650605879802892322469096064474320780032369865928551131148699039802493499868092790414841599310772956028473227041848959728612061656999806603866108670520164935131362369207880431222101225031213921641092358216147429384174057990172984727922342836826868149095054124282320079671016651217879744056259493891379183938742665773985597634674904771670269838156858436877860984739499363237564115598005273409812625083068648259550042888777918372917364192444969236012018839072985008791886208367832331885079959650720087766834225070130055962948546063931033800696240984673479941646952531612499539976718220504990894687827598147442178580448740971709532078090855043854509569207437562312888319447229401250394886709135755022573324738767383671394832937322898289465246368631212289465572839413475108195891573870077796951767523351197033292655347784212662665700270497661818649538532199099230912597596948116408510776426114348072992689143493465394548576052571068698589186517425806917774220599930869098094688821053388090165784879475990496690225695904548883710341552592771792397744537830370981356651455235819910423396674576552937985559301049161352303356255595265693399672176270977332792980412037593712247191982093334771194095852826632027692680660311572388612990342086218781663253554813215366102685042228757579395539624674970145722390783658470452932894997705071556637409962787426108180279076628265676160187248726544475895373596642484151400040352433551607172465800539959751991218387577931096828479753271368778736197528378373774183931206462502664344168560759846252170958650694788776438098143536613305823395884164317712813468945395587393787443243468714528067119719551323149460957615578420265505773184474928339688980082575558965574887841306452645393167467642789424352275731072657969310598344229958422014240573046797746022124052887341414774244690780175309070200628742133755310899466766007420323000027750878650923074045165094000695297037450765444041686971307219068845882636166120094664101618303629619718658988572125192240607179649304763254826491941844223019895445264776467439396782068292398450033881110712077675222477087322696412100037600797027877838111018933856989630199711591361579764788816852729700876930019803018152495016797570755438413966407154542230724453936113182543068639295032845719732261036385751963307762799250428100420234194277521891581591454592731732421166759959337141864222169300400558852479184197286240483029934731917340359041675248385951124186787820638916243743176029032365147358104095928097659411066328626157274977894232225027619769642206082368272735424662619963689399480356039005293447941999709630676980357189624494057690153547695785088226135849171313244204882201859219882096947775098728187428282746394824579471884358443339117726504307390956032505844819899583291526008425527294693664412805705872696216829049889511913523367907861110600510152091209670397137281827936291110685842462854562354408265043214806102982520293293416770325741814098626513481201673311605129517689644916703239675169631379938285294602571821759496974178757452971094259024699297030401774725112236420086994242903824188403359222756254808148822262916373430216778986237281554136663194962410225344801557886096038952118085444407773355261300705784161203363109879911117714015983209888178547887928135558069525608415471344946915247232630329358807104507047397808146030394005671850103627170812192197545060142761348773052519914719727697534308081843396430894050840309277670643976718884930132175127718086970872950062062385830949335609791124937141479789840642548743563417943577361019643297632130783796787439266412459291914904038428247499789064705262106355553918165819268673647312904887238641466048691741450052239976181342345583813628702797395838788349790996513756812216735416569045108972477071333304157855107293376514585523447034480569971794461067012790327147368917038183831736395203306653678488068876877563852552062643202436001026512601977848516022523156871489918396796221836681790567481357155819644259535751489900647198728765391344580870564190224654301994682777812706188405541723237764752154278236176065978540995399614464466240988852592138224761683909042402111034549089428765819934369327266146748606406756670490549234698354805282030675283120153541701545998578818439734510024649883831284617274870565769598971044754862695527373746296724398299120009174127444886748414279624117513063834178823759329731432056458456139037722715985154212794077688478268231548424714321470399689676855707813954164982099840550281290940894284340132608715274921088652827371093517261835293527071196565239074599120118084976464882406361557444902247117586132105172156574754321256762198875094124977798692432082290379747260642848267605206009845061780502051156273891376438734440861598822299240034233321611845951933204033165404126882915141005117534604485961855055246153419153182574848837138338497604270381065749400052027353389198690160298379759672176473319082763463439249970784492167904798070193660789897823507684496147330887147970715915067405955479594561620640184761142963225672300622936055863654419512581002978279489910040548707231942117126904302593130937961027326929277616808561223869279797816750689513065591877886435268078665488945608324658220204961251646548960392245516861589403916064983438482361452829681770373728047689894172063177255591018608619771546022754632633501782530533806153917718519915067860063060009240087387718285896268044018109735031185335527150789317259696611306027995696462534527578220377493787500195970871212318924059481198946309811759556037235726289292877163260901931827047313402227973852723277295813542358686181787880699558088858431527321961117045272384206885346097022346162575924207232853261610509269700726161014710006835609303601880495204800144429581516359488125619673804920345019625110945328180048037230980824347504179094497486542169259398286012294693695271458383257880078375210305918232068265722203231552553238117688350004928223703774979347377282283690115751596433907276527103649832953373239300339465388394810302283337622284445825777095804923925219462102469847265883627560945019088988243991330112116149265136265721678516945267913472562983818681943453081103987557635999381452126267020021509819631609097848665417421352421294784129202951072565018657909512039122919024717273608100057383920521819755068056688130539100040675765268669065260025614749720948170151674376565429982298269511625081691148323129454121757915191274663282516881261836389914470971388162671322238231291256639411945641360673293854771629173156185129084844306076932459907237630263011161780537473789138917589987575985296332804934633565829561022137407920374244296181975379419366883313803246194980399919634629321619156961107649361966051188941400628512949537727233411365905808627512775206409813140995626368352465985806895797840447725507548116284828113377443175195305750018651888584289643354570440075442530308820247675636197497203129267322181362011645838396681049841443668444111871195340709115038698924685800744135589224681461162898897312721321206062258037323347451032226656695766863414765602312373311609337334873372448211016746437346170966202116045943455131047713823406401593398350923060461436714810384393554468501119493442628020709050137609490828145049567628992339793836724585429009238743166676062367352542133005735697643324985094636562278969441704482922509440907896925950132319644976596783821052602847231030641251608603135208888433641066075563766921527905978145555813786577004431516640232228695016110910787171794831455927239021362588112645958059402739953737528270678685365839011176959787690730367395055679456761629505861717507650984021571865844270569378352162408481998501164143154217202480936777376257556054640467018855488578822423565709150575255026083501832291046679143752391729487642809950423710858893838912415503423796370172116138182202455438878681020832736925329940460552037353052010544458738994254975912615565076514480898293973357741945748378617361575349752238908372270343389494659544067575064196771150755041184008631923195265244243645797684299898099143100812103416218414922679540646989457561879106052582614880564425332030382230813820451689961237924290492912525661218798216838338199987445880149788724420954284180384944595064690789361620894952226520719319712965808550029184133844402108528892441380508885106338546489615541010059765602700285149601195949434204927102077586289008022882321856604332681108050433420384245300772691999017197338766900945416912219256438120816026733056456038562574562614378166270886899456468469331807437736418408392873532876285859711268290588270102701190292091664011702408449531681846383109456300689783842438709702475676819423306486071653940381940263085146897991886573193732934329950866110285240932463249969045950585722539007722472896798146544383648799737299552423368669354090693126517305050856768892258172798824595173669921757237840864615638494479297317347040097278479158087790899016725074210662110205054023025580664781999985477812332644831404533251791408438533489124858280010382620067828274401940404991030499927552150753084430660131988591070459596047435348321247275559464809810181259883226501518133835812425121919235838610824638465478381462663521333465993917023061872758023745213326256520131030212398473489062543723113656911933184913192466543666962756472512360676360897797073862958364502407740174485883683609981158768199922301194483708765143188302346688094855465949937672895112591012047482308745040052205404994974477183142172535563609668476628346851802512353079060660899208015855072165121610615233694692026952928741044467026840569185666350610497676893901157979649039371235312434259997046297971392769102520544373611791065486935393815599089733658349814445739857424136623409673751665616948162092491555274280728122819569004660897476666525688519014012660063657453909914810729490625309789268018878485698512645285999654516674719185019476771044360631638255618153575641591657397001872582115069280787402800249587906114524955944875043732490078780678705743848811505370133234946859203591502224563307158505441290580174664174244155363377456055965767409265855001343916275704429003029645329799098817272502773146536681290758203694579739444618354445653419440024088909578119378341724476560268254199350397507034211830846711489842052186845151036684211435796542583152501820682561583487491564946809126136341817148717290391872868343674617492287013820130548237772541938344772072690662986346853561450847416544318872178323401881225350837947767732942079434385788411797687071455713212237115334970640677971595922535458071424867300617610615695831159355830862401427260403223597202542892823621904438066232436778253979589993213138042626801617664428426431721782242741326790772140782961416149522147608255222190196437028329819416241123242097619354623160215123736982873907773175613494481714639883788301926037892255997476040198080166853436924753530925777742581422071015182822606567369363493925171283881851981586631787090512223879840787277460890123590785527900378643919591791494204325968201221815299961735405084331183051723315392763001256185357903000419544041135759802981011971799123382365449486496676101772086203513101322714659835939774357274195111666042189912521484617015579601103388371290377624801596648199625106532535911318335499227923042638928671410541203867223495736876328971218889733859165226434461661513387050792129961950298303472323300791412491914928854180502646868501670126724554942943049251737409948642824246170334733403355868837548188951193259996238373126424387577077784010345761303231592644130687214976495407653080929703732487547924858384667202823970055559595253949507426618569667936711317984407205144730712976714692562885291008717991356388192253781997393714396137607348372216282506952195888868552375274119552925505644775458480095700773844879917578962739191515473215419449197855985644689246313903321716261658125276519619916709879670272582500542037851782057283228839055484317548357904623580672052204510359712724948015243757102614767364493077727656202051152302928441982530208286204373975246579041783628156193052550584404160763194906830239075955663496940158023512110544240017663799415415535141296990673050396843548963649008020549058412553516365625452059518180780953171594418920675671935449238707905916881374375524879369092357732921881849212475789812538736698579856357607931943375417378498746270502335366306794271482460257843809270527788424524698739432992520069843552442677799398688402670590067389587469118397757891735969577440784846021067768116489610937109797797467341555969265886954850130204160849287634033400700697027879177208882150040860799093452879178160878216247411358243956813881711579912729038066286489564921048037658057850786248299630603078436511984804022531824436440648774401998188705944528528490032380906914524625594711681282972924880132600143751878850320117904886609507263410644294216534750655923359288642107233355417868717459776080476253214480523357909383540679363014019359019101074456284154875586151196258552269593954204968800795113385642343602173707010007116130298864951814802088349038041143169167299939728961681694918827151138618083374273392597445678511713013645782803920291286237517117039599381051742060780597570398517638853576610402064490211259313955783653740017683024504491361055640329771986676485267784951314555195699771380740936530765367836741355468407075517286635183699241335341136640113510323916817872214024490002246671280456752631736847657816807967827226747277751352580283221793812570258728380661696409635537767846019630618899013284233252223742434870402439659693755383179013957437821287142555568704474853441998783432733118585222858818146205430864238631113525776293554006944633669124499676122295723397127927295860154901196167461384520577990525109096185989385169140316875011588405691074854032908548754627446087846953491804211006574132358239380699774926786741571965744931067455923698453000690916151892537905666424484180411831415120121682954742998948828545965497225470720008003021985367061675165507467905849845606585118320769614597209031264067871730712239822568199562464867960600462011378714744337501628436348408488304663521918090023731372013004801670429046071090326751987679498950663818890408353552537667117874164961909314281390642881985511155984024853158961105028987594921014068668939145490081474413778032335965718051327380043447382423708732312240923632903905204954971700255238408878185801719834856895277004974458730237955935433764325816751280369588738942527989609866207434412419118333646882981139977135338534370690674358554861471343191882925879137243288386312578349134242646330031568779126543042542126057128987433270132361094130280938025205798263700931553679615797106534676546205815239493360149449972032089326774066205379019729901771826613602754155634645442861106415147750238582335962751009059043352268963460078207489679234613322029128838214849539441808315590953552516043492240405220604532197251978643371808682002572360795692825626502539940436315916811788382033156284022263413607114796453934411785504786902650092927157380836595675609258607923171805948312792194461740848975876667071801572775926483764883837158457633378456689376379321644004433154489938651671897663705879975311014508560378836903723505245192971520922464745627856887404428477796976677509729215058701906983459952238100833938890197453633310838534269897520858977436662377016627959844966915359232359811975897626187299409824557972565887900709741360644547261946739787397115972538722323189921247435894184645905380913107203464032558149996642959057529172753359298277534547669825604228987767456247260076279386769292281856625720291887388942326032375372307513366208941203138439335668600822543119057724337107468867395655109012054182135895209936102337791125872250349236050696043939580835834777548188180202463731399321625164861566454115765621616525291672569360920412233335149945554835646093989460649786536220887947701755541070042634781304994554378381355446855608961203731105505270990635574330867264489581593537049443776500901129890186745075377288819101212869561750983663099210203019171154120496901285556816246086986643817692025473177052638525652477370424666111642748886241043566391151770240403009529737875205838756134607434338907344337758407325876860155820595944369260358220020842523653900965685006288572196602199956360689090958387702589672438395088073812625657508136673545922906756106938099684551359167702674638181946840316426713462924876793604323643399429132935218072893020757149965980845183226101675049823264459170353014737639746856549839432833137280515192218124343289780726427956256714139617850885977765483393211829105585393096574167218264102281579913749466399720526728983115989180962874019342812239057685657463072920987465627890924258573410142036264233804097099923635335184261826764055643044169128456458370722614385996155485001251058294679229109832294752066371207948884858423293102648938971456912209431516411492787465914409214232349680592566204388264617808179728466618777228836997930020097334405689291243558260202717888104709631386215919410494278191609303574724639565469057049856191148576674874952911117987975615974556665514864827924267323194062947176142865788612958436353630484432975864807405835832580963065462438820369074051868764314266800404898738494128548591637405739661880901319314752288108305969153729505094238516099902203520136575074619390973428714501147929806719032966238160942849772338157342072902462100975721157668341423841329948288303164623403885376862122483148111536110503198722610643410827839936134924198607631376305421207068516408009647902677091364875207369382861235966022269303182983651906450595361850061589384543833890601990162336124888343285466033123590194354977952913881891164095910843573724509120556345380839650534267377862971385563045541944182187106636916885089311672219072183326671243968229257425794896784665307063583582320218051110268226919828782375140511564943208006720612119370004354529043111341931001091755667944305230580848285543939010049322884990065558826838073987773349758216303828425779009300055054499174079968636336387229445523107396166551120560581573433075586086821867837405770307373581958443071312716074327453684654106251853526761864543977468997793740680713472721708724686578702020009590765539799116166893274082461334548488995594914333413291026439798642976246047004860461629167195920246112188409574533802399712260546405866671885716490141593712426127760177295466122632988093950180435490839158311761487285803620437051425247012132807795229671914336836260796392764290412178886570915559066544130508818126188300329590859589694103201723998546211346293242866942364921096723907756437948904045703772395814809668494983879732341866259067646448024175444473529956227453829041794490951489196919232351921218436705657229636826281147199869157344397753857690162306962031351452559623523666874906645748325259063178519570357505914144692039400560839816395583608501788714793982881531943939495355313056577576546866091439219099443968395060352670902057166224481267687478696923896622774107365646121281440738345487656073398781490257786320494024630609183207446790034828519743575053309053493549669595067006917885864014723061559707475644749889690694740588646517102339821128916118112838398570164163100292372140128147950851201132375335791341976577462217487793823786204929613756741650073566922949826516916486075505174464498568350689090922013687414976862659398953841643332233351129448118039027607948413708792530121314744416975766855983483984676671741263219674555772140862467090935257037616727094144868667378368777426350516944346620903229765774941438212769071803022894828596604847169445763235881265774794849872015689925159761183252627843973762929257260931466999879720096204405642227732039063620176269786722785939939853960733285784926614292280642734706170899915701610576047733686620842339970708764722226264994382923468279644900804306038335844270572653973251308039033890725296716683076749401272441518016227585447053933636625771719291275443443796375863806709497043366174309738335927549774240867267492123200211719207194151503998357594653823216102439919805514544890175513162279178782168621243551630521977724247682436260826305522991947626922459377101103061596849913328839650522427831824829741394824818153780008690167506608068676706230199786504185447150642142059948701418865971000594455916184093159380625512076178112726032093582583912324784654859290086358227470345081190458419286391060720131325369886227974579125945831699383592951924461004763470571265361031006189750385927911722279845047584378026103821697988854457606209816552875208724693461086086257926996247271459505607636247657270517893141800247378295217383468829628395775040002404946628043372014134333204007259622868978865109959373652197225791866981649029807720051036449774284164284227350028635739265875515372926477507778698137384817940340915662894032930344297453373801105714702202740978381564618339601007837615795527110814790660606133518334540430384126212394726055999861091358320585604271443426629779717796914519857599805224340620382865719078771299870853657741305334527746127749313040500774529570982694924864992689139109960012916437966349944237325794688377986478055833413421099698654314905940913331075432310826127682968899480182219288921551877983573624636852676048179658596414584660613289564801871583006717980582371654688505987799080132564472397709688482171633303455935791241185361593850366885563226937744861372979727016238830351937631186552366471434756425386647959511538085805389170703055338092865664829937862398212309957213060110050421860284125939214405630232088580862009567351740094302658240499585384773485601124973570765696026691256573707797373702274529437854090263898196095175919298922975758716100590824462015155754461246683717439787669127786677993606728185226590176212721658917605868753702414533732183382656970317746325623267991539462488419520331692070244575371068381437555057111115398425085633762973534765860952583486511198781038252345038980677601341029813984155458079068502985728482074708097333715655078225836743123689765849007275061563577152008114601591769108873241017233190113310158276460613955740557866817719640321266310009872526707127069087495190382468507267777700598103565824006726964296097053028978825250720182256919805031506675492695321522408793865930114728874671211682526936163719122231042292009468915672108922775042422434183129731148157750955454507053074771215005411789099007297635232436246378254968173680880128365206596520916872890885372654209260390827310463749101593958439509072054201368356374838814145594441335834443311210234568769893441668025837635459829996142580965309863378853438924427873579495797058389833955857072406239358370826901929003079989457155088133865543166255546428796040255524083247275285928404520029491756661869390530718966891419745841283292272383065186700897509889544709055879015329812953803909705458230326607919607066877163830680229465072560852690392353275269885862851093726826176784826876275697789947604791357953911982347093093847579816887774157550620662289078455139156768754972103746603528174228587986510254929376896138025786147487490684817525425642916874112251251254199191213457627821350877785546825226797133667287091874986341670648784640368403509577292532348336913913706140038862155214452854330855476900785091316471579455378535698088417407603827306480489618429893260737484387398047905195652219371697894803960516096728611623411265309177966202567271172394276029031762392396855713806473935468615848721084291236341565385714970877231671901373948055023706690868879394978965890264332905390295449643793698649083701687595143447886437224776052760294319872248839457224901291708320895850403252691784993878469784652897700750081618221426329218087521650142768130020693990380928626306205005399550701823939276339858847323199753891292405999606711865793274171516076345559751175793080335498442068881263338278341090070600766415569915000634491859158138661715237625239735842766933435614963907475109913318421420608364498657257997205507570516996318666228925845266583278599287376397074481390521666441632987192551506479313005779911380019844609350350051019650256870699574824861766022246836093013861397335138923257145390341771738854504998682431624207654550530675443341182731035122347148877891220097921169791169911513251896513955670710557519917312572834550500713071690977682658139900453432365814081725963348943910962100188987951996744156999365097591211674556336389502695389377261591238017125555380028660959497728161258888427544741559783765961151694913497997497366349760792592821712006941298031984169315970559087143632040978874054111749213056847795098670587485075565835676548750529297731261740626888554547547624177725353795423189345671895463524006502561604668891402913120247563155155988387974489549806167438313971497676244292187177017062303528361680487426889810329793318194348074038450907827384024222110753333658274107829846259489321250955743213804774313849372483125728858048225286426948203679339400292306380233855479661141365370054653510045313632924245289712938210355852307769727760918107977871436155183825263586848648013149896583422793359331060211964591238604908449258069510375091359345482462252590199682483062642303021486078194666374750816519081211688725364435238576944064955907774778933211012973969931096143048633572210833583166652297296670338856970781381794100435341572527290085358032918247090902881056534708053020196511621361833457146913366874927218414847252016886288195554060602341529505863118419589530480092641263748866207555350165416552256344581596738960875580369558394474419204004151710155091706048536439451077526720533475390318982994151801581581303370945356344012381447240213385679381690677145540607655696651220370472016789997171029295585111365185935877207961578031043794011660725253531637908575011871441934970512667316141491158048554482896838472718421577818001351358718355422220086386202529886037789097936497021607560318879643196217317211783765106301155413648861115213366239180653889979443288180395115495236052383529082956855169348290875423685761720719166278135031307536459035540710387180642579269437465143101659353865384739984095812992738692583922519230167508296219719661004530196574557366240137201349014324669745696446716249151458623888459658718856418818858472544070310035133117076003398270691019107744382701922460203700809328260993533542792439389107650715713998476837251704298974885927827426845876544080060213798952551737637433599359282958721404248527632089312185480359578693547876333886469131057046904564234866730484520401926733910156208453518125591156958087329942132251550123801643223011401402495245540723445751762686501440439770883974647755038932187574863307708149251220756167867516554087418460536108048653435950680854267947425013615742498337268969083753420334971722669059084631231090476999020832373189361132204032736189484545841242082610320245307723936911668663689136036833970249986525469318050324432705344701039405401721773272511226651410083676767518618684585365297263380693148697692340274179112040960785923989442003546945928400206977848974035124926596758640353272974043249802614668358424021516405273888373171298763068424241529162642330796739111279575434520828621849593312759132140206477148083188790781090801921462589604280312327239310871160500001739583258873016611544472150595501757773492173352788316328578032289718656952319656209073918394633318148844877144330719068245452259973040707400541795838351525598206690296078858150462788766744075672835853943501707178401064436993020478017260418225809945974884587306761011127947204526101739147687266651378074488663607338310652396105020276924760647906398447172734858013716070975246228484183131057728817509130706631860818918413511515872602980817462478291705370434068549251899113479179103033497689377545587837378617926773851832169058239761177068073229506270420652349328147729039590604106068406151753960943779905926147121527142254273127913537163617798548368603252141929181694621922886994532004437387288783796320764756558727713331979546398314279194702297481681977560286018395389625277152556871248930747595430197759897065425000770014599768518744629456966928954700999426334523936062536974524289666033542548532919315667208630576780003119776305283715846112192766912858966269718821728161378205544641093186582994325149075309018172281368310890345425902276279346864532354097812663307599344690424273214203841796124763771699745337595119798648039079094637116699457236775838216632410402383534326226803837260199908687145192492321117665835804940719982226053358032190216985118690298459709030809816901179962450420003310263001314165480019653373289779333433723838792880998679503819327881834055925132668594730587580181466081100985597957822887047907862612595703653803934992432854819831955744198220939512488001699161277590797706191807395072838676644127638079612919057230874655091204003768227675519208552587254311727169310340741384508607484880757541827972352161144560564213056128379453470614508133822986291125239641745627479735493162250584987702703076706779070547272849854701240836823657921016996091815847764564963999082954380902282648769790441267737366346314311826295639475919219231739650068364607729964002339335110526172006826023727312886268963663454079676699064883872973110345728898289524994964783570365070684867634082306303776127413658104082490687784344114232320536197658598360160579621821146987357837915217351908288324438042086534688201979805107961353922528652670098300155200334009451597467801060368516305540243653790630592672065366483681887282259809111360357490679451053560578968545885147798175898516923227912857824742770477418303359846627759785482736747161689433189185045434060544816799823483893423153562816955480013662608158976678026121474835313601128921519705779105210149490102904306247248531107218503648161902586470139128645166393467834192858029058409748204974416814523898561797388942530684021924027972542193268936056986130443532818049150433634797987427041846055382088516108642287563054426599169002582416820032869304892978225796645612213399531225617525420379102817617657372355267928742867428266582523650047853668284877806010583627864683892909358777316278534565018999091965660043986389061761682993593301502867667590894779990271469196759842666629546860937283763680107864591461868266683339548262172205309310195404360446119048606779436657460149141728620065912962902312710093975660578685294063717664029734774463065909636810697138571204767373315371355984307924121656811746379127190130152983146739665029382244737704734944881418082360099702645012800717815233127718809901118241961385705512788334274560208346516117684193217130245795071217872481814040985820269449899905410597306317085968081069194272023390530693630614212327937157667365805907658567325386779411068776691773610444165283339004485418755101956989206753643890149496913234420174386221335709124470482458193901161578540484470154991598626465623146542681997889640864112764654169949211388967956029015931811232442172706971714264087512548236192948288195395260119173648821969489800673097694566972039771784299581570595081513348801616727265752955138299538929302199001137605141859381325101502213332753810376009942625795045637351691343993853957839248869870488026498733683650928506298525466317942554538750656717386158574758081255509337800003279828588709743175411580612244763231889069923012044620298232280504493675669268512636939991674022866964490783374386082812268432832827694782311353246812320688183580778906761541740769742616758169390046418741838088573202993203057017206889093140302166871205823648462929806194320568483342430707711553477344493461498643543830361763350920357613792335291624482307869473120803709953164389218436125710763942578258805680582349603109381529172245918624041007317188113551105165622131179073147489581107270869332099108659833518890780356328125775064276732019585845464883313036543134181749610821550452223146375964879557251931895401610509490755476771640365038511991807175371426661582367527175087169480626885208328675591857280674045551091948150756551675374436361100396843996024089762186926046231293634864667900125187485810550683587475297689794484528931518726531209582133981051637335022288758030880013715711190377598920875236037903993661739526421206680879680844146371862873597457484469665903443390366466110553171826518446826110074655437283218059666513420287243021670613811851702106038803478167594889665813851732665115301471457144395807997068637181641378629747088412245705760349348623521185185624336492575303295106086462807974891188643911672024052195228380915400903478474565656896686167350916635640958992501718460072198321305680312804573347066839463110208709207400558189591041576968648345992472512763478732778617428174509922546277060019765653955875766954800091642363074003859129745375328288301097139520151098248660764115632528831723823889220689664580168709383492459146912711119489260130028376593837442433404523629152870620900810744179827603337029295648785768581575924014900353952360044910554448508963723506684598150287674378599897651420317594745036328732945706077251766993273623573655912251862572516446035838966068234937014011938783343142333872899920955476676433733615460508471175668697113894180143371874879008548829330058486400588735756627752836024133214093307583600141753711298333967315093614464038127669284086073129800495182912307404303152470717059807375635562223746703239029385285000222635248397403552844254567201667910722524714364483153560941386747628301464731699937007009988828634925932354656140638776233965156558732953073391673514797346333628523426472285200975661426868579445878216278705329467726206037424555042396223919735210724889393934366926000043770689228967914820248520422388359867900842110670371151176553347431884659519621723510900998607954813137429207000069512171709345707268743643168521891834843935031682561225030915912459911355346451788732088151774297651960440062852352206297383313228639614863867717290475885983361234134193674593361906372210873599011243973062333579526915153271309078447105910390597317788643397894352790966097591472282482091230074672191614390336645671014571818786235695502580291178782342029442256540777915953875618872227599195662487847713021871338954826397732871498372886203004922686034326214289193821938665826479821561270234321184226846909734128363599719015918042350503002744797840735765796514544962044537541114543602593749809323327389430971365634827604377074170552*******************
372850557249791307658641537335143546879044557785116529680286133190395651949365222114404447704726106222389512083129662164119171034135241761471282270957267718627365784758634190162866643292186675640883626731351642463633095488398926136187849917462990612096183242125124895548378125463427121112256869076849081293617212679992933933299098190665232967599046944667565983670235281525646137403113226544720604224865499080161407495040523010673723824748579565935439361965021795180840215230846701811849293890453868706715202359997224387778732914808456068988937315360140491958895024398180582644586011659338889622748611884900071772885055771981082347803070760973454822839259726196983099694202984726041817134761507817823221396243667880660093774791017979745052384771266096572506746667752736650907682779882396973787024867690801316535278127442622044434309295204063848612478336430081808962076014454271920980869137085120733597205149518789804034168631441033288638482387989482773156168814468807264485051793400181407691466139768033513329575331111222144762789781400323890471616435589384371687639428909741951610069541950575148439172875586493577670132503796126498625474741184222527738789618320996198283864324146523882812485860527488915838788062335565178222380330397720314130723480428680414571630883333998378871548359099534813976220275553153047788241484207848758892743901116037446863678091240665760998631082642271021214174164384897058979574045839442797054089374590277502067718807133344344100079296023801182036888904214133920304921441705479163869047909457036826071004794994823475052084665013474487765972800174107703812040983170756359118752693947199961379732091182638032026426174261240885358620297427628867580512496694712826250255608637778973322309128157110666070819582924680915297046277993759212963782342634980549987667603885215677546998413992227114018198344012332624420804561813203797686578136045788301002829323683275688967439040624933676165225627099445562947567942254814374523531539974567243022974442574905913359331872688290096240906594023576529375580227119084271230146583041208271899342597961936035034276382545826215392241936978135316005721528897213465735848185671060143100736166953315296009398602911124877918832000443000402812002179470857350065901194259004120420646172864596206690693346621979005753677135011174205015006541126385331016044190462291580868293482190904362926753304614452423788592227030704153112082679373498419553920279942500833946869729537869197297538989901031583460494815979120849947050819233282819193319139285697314373785441988493861560270536780194659072202515877105102445392804046048372658519758343795123077209268996409429142536802426930865483276017018137126715795295917241257854586533622459964562409660311028284039491405906018348798167443307478546719684661248532004130707788835679841862993418584122161385799087886616297893234513401627338993587227484479050965162451352266879514229240183484644388289875604974997442956778374942288282363054276969413600899014739202937231990255862527269069009269333386705383118168320525589305687887502126087164447232690998927543956840251258079041639521194597856281433799397984259785305620888084091454310655482950280402103864727288813234600717371112828415972469108396678408221780562517874021644523687529674266808891180736315022891251397439063352188166100921066721545286226780672179469354088399949592891857290500785913639283982404284178695368048661541918025929849185338481548908670184709319085182588145886559212609976685495163927540750549369448751036807242064092269511421907883925843871931180353601990347132141296270501462619927387481908135035691230796694083654526751819333598564998431348221507213374461100164681112464583812516439688050450108950177253747231061143789183464430931868082920180359900136598101586502670852430017463074874201948684220232932300377548994757686413911193014496548117694314921058323962144585158914417919902366895658618880402019703300511561367910686355312473735330149267652904197649264724829116082905430862895181429696653414153122091102696405142819206314752844282207281885408369666862323889973267339349422056077805081687741723579332827784730304271524977109722766928097797169613429972060865818136572424711369291513238788344746532935621677673588005713454573579980224337386243389198165382282615400788465032974643998133955107046019224586823173642088444819916451987492783459174018751150917755020134112934711002505959264522485768691474876306391620309727207990089105934212784679999554682623549175766723955704719066619338032978878050504730883750746893891423534281629154568988762370047878236913250952517424083828606930618317514300906880403230720277957913098551043180481196510627352218640175074952823185387087270937200632459737659290674920738255484674530792016278749719528495800910571029168582273581243770433133510782169595747084161031883399555883201304754992746348461318664028864291490050824851939044448258165127499267383436158442283814547003845600982405868443629149366332249796764437359416861602953062283906336068978228666537405688418595370993394864743930410661738191059027926411389629444655241636466827457214086230747925886222938375284991632779573501960379207471810622253450040497954207370065670965167192342417274808385535959099838350974875306151298527663025069968088496521398528617855833135220614520426418886322579852734121858773398161689021468553856621026516059201918354537471886025843916457299661036200040580994039002770571652291414321623016484386355754962370620176629343534748735121214251732140317985325778695779624613829731771628515870320446084919336641449692932251675639727023818386330712911074918054145694385771747505711346985810162862419215991772437931863326590482556558521535386522345922375392091744548583806078402168588344161076371162597478329595394406024938926432226486000336105715566252139872794157984246820012249694980866728161589168322746814845764259636814370163494951810331306035844889187802609217353273988148255178736144489373150423272872123524856051810642213454870543332140834795983899888279724094719820304290917440673436675946578713151301989390639483712302974085695825884430756100093223920297414781605460714260929991819887435973947906372105941783606125179664390690204563566686335183697246808615265273142329453979099437381148657895419025595819432631852242714400001789257100764818671956128910522773248720193589668976284014437914242918804265646724685791411043412085713906615967075649249872033764882505274283550952850220257758201848275219813628136625149231610024072714843234800052718206004756164556796057756715033643192071315191356919688255233618144183635405394037214963775915600266679510978085535247548025964366241045674081574530742994370899418710477354838108942547010626306758626444591988410432302556215183199375326968325777749298399211227404853523740195016818112373331432169495565789804159122033152475161886389440178481043041479895929220379118498029933550423306604475926562391845341328004787127846965292893670831491321639150870889945831481725035066046602710787326295062567786453576588155802438511789067342734632101208634148399265397029941999836694541678138430591728670423470398780160399327425624717664771207129649899933803278120656018813238676081491200262662089670498110294812970718325466482791010829456486873904714931315278158882494959118812234577595125209012056064424090682412885896217489448682836775388581115382506997077954682053886309764552046763535570782603722687060710497307301052672736367798707965149640305728673537532339654877774352905117293509598378205402284593591385327802679128421477398539034002441218317244869996610041095712203489301074865455792030091282649090778693297859718035144915886023233980070909803040842248407354886293975096369127322321492979141914633196627413206241239476978848192252827366491157859985219543752644009777702704568311942451494143957413743963978986221407503211867943370081977745148183993902733743428103550073150323941846626644839523432452910669529766611835720755404975556608720513907913772593799828628684253072317757609824372528299379993151951482763416911712731005556871161308919160477752548299869292848244458648137973812189605947993672279351177757587992748441399961351783406428818150897486827029108723257004396104143857549938296261531225608079102562250488749849084663502182554523259767581160085423602495841535370695119608749399719939208178003211872866707016699420340596293852153445495201248151566253509598284427774505485603902114168755418137315388922381338971310305429177585199445155053861488456820876978041172569872263569455818251650378440095545990544369904676979392843936281551788080435897617872382337344433581290466380654395686455995073058989592501324363474814808462883310403247853217083212267856503096346288664698259490081849338531629834310023454990499044506507731186777708513935698481373111626564155025132695794520231590074754933411770349918428056776259638384054180615375554835370718554237773885830052975159785566783509567731431868337021842316164636006390978074525777415242951229712318570813283281571342473022596857107431376711974684254133684595118961534077208778212335169925966900203036396260206782479111241754780784575552777124499638042804944631549942384728355784094267654342328891056239605479942716059561636438997393401342718730746127544786963796603515009741130585372215438948105074354763315108791673398308307171212499863810825400806756453693377149770240085341429197965603238140443611521569608937330585723787091408829640767473565414869819879714565169960483283652114672593655382899712543868084735445297333374601279506227869881681191938525782184135490678191024012180666476816168264610713610318028573644182104671842759573802327242274020608964974582534547488820205495303858565097166045334306707465278919144405853147011553108352385972224364403733507019334696812753021667150925735647023242009642120306177360890661800542234615349125997112590676735082740534806764430617242454127273352532546000514771066186674664257766123838811906579617372348739584438191381471092192106189484582965381785254388509613825996663747696188334595242233849717924137814979064234800305457550480444296114726253598718274544695165710533028063991717881695171730191818401676355958820389245173013999971054230139750919006303001024407930866838055916279215922780235525251351590950636542224250521537023716885285796029371877388609664868702451194111513891192815151523135778013125359218761063999909787765288653422572221186704683081295561050847096120132918285523032946107824623204723796203921657046702291714160697759358343933919402873160416952242686857758518319343362957506713687934312291065854818626909827138696161007070423849491757777824747958097973268808996368734493564818240861580803389256901550035876258361574622326356217972268701161440518821718653549261940516048813323642926044378089397180225029816480009764880173234388724706138771986493102731646464202824085208588428054720142257000663770116059035850387675870373801767326121453684561107947655691665444880493715547321474617864875903777796344596929692851358094677712698028225719788705118735323685905844340528343487106127255377943538283873886921361586327339714042540916121588408431515336619705772930763327516863928067904805647147442984438217727704189258941255695651747892037336214153302320235301749212213765701293818821232687082507828305425321104766275057156663984723278159753288340654424051852815467733287421759884125446485897690622524704046802252977025596620061618463652017139316752285406792616854807226800448862414073687447413643230556756561652617760303921879793988555239673760517188812880851738576747708446771105741024247635727657697961469806812730359907212216426646751687208246751425357946992866769239166172884103494089623642889278256075353749627243283088875052812657966008576976414260639959117906463310960184022974571321495679796558599048001247645380861739718789104822378243898240498299069953939593233302507666306993304634900441122520295326622429219226928886031553365661767593502717912579737049512194910719002980720341302391113458210970782455429143287041718023233049127490606363473598558134473137850877486941835929194013565182501502537027096766236148299631795225827861143642100447458531158871335906330653305983499278776665761301733235527000221833914019886066253363828988114697285104376757985766261980900827840241660580603763265769738824356600670844589592371509162293855647472401022076638583860016806291881260394241380859614236828683100033661329469061791991539119133819308928831153041060863113396551690689908536703513760483880449756352650566725262820197795484274255775785638116677442005066383444139747938443880423888789210867734152715222409979627593486181705591153755381557916119818656547387170850241648410332617606841259098536428479651975549525344432543966118118684437654703823876000364238250764762579757441674838580400157147205880760176775549857753380776107396937228364556977144962859000072734049908225061913681537947432133914553146743165898761045827086406949658419501266551867457125303043370226932142290080804749554131493897519679623547223877588397321280862362129218439017440048034778705388886991023869677450391282037818989307401379819577375601583253671497764983561866791574197950721378326890708064876628255167346284963924459570590160520886804660752921253455292507417093619759724726289221601608841916431043956089869250657594795899661566545408657844637319936944222080090784204497557064979583249360484945464093991701736599213250247899590480883376611981405132904857885204866699397276774961943740641011657500289656443155324954469961679882973231080289685906087028496173363229129144159408172672880610322406398279016649277986672805600672324706593505362131667089894895711238341336302768092198214593236784773614493959762221857832439880166221329847355404157874123240280685196634643219519038906456995722435501668997031139466456611073824014765715783274268849054880580658335320828133151293922046375833993857095514674356351069463089963477201039718756023377355235722055436590655262405648473114577921855404372076322551515837136049176475658913685693763660430279983241020695814303140160610275343635298406140057204429815480056389022286177505552513167176861281830098930749869623472320038210608298116732902308475062059606491558789640970319567357166684047781266758882840352576177876050614048540225543602792680746900745189785293492187475541353394902380951700374331370146352616010834112616239231601400826692541847235172090181448450232997150067697171788956306728598223274161025579525718883645975733766598670841384675765790842131480818633863445866038330161990163052949971155406920651696407454360800026612754526873984548802036041738177158597402771128741541708964851562355575577464259762840564929155755246242024780770476509498685001976454722730028097950703956434770524502597867610075848702111411297349439982767863775145729295989169752910641515897610798501128410961602502704882794705083252270248167559115760372085359293014428937044267588799330737883582809563898540008617368117064011334283531692981609128113149073523037503219005697005885316995782229762239822498725412547402965516813423261164321364453575947592442527410477263706236654431120026613688752953125000137752830464858156030804428948809241615351556918045319940339346642270673519714325160914490846629014804217687030004576068619683431819596511364732084926376565890222944917584623446994743969565176076512018510730395001261176209988918069071068429903896627596078340654935135327181921846316677760593197542919774963298678063288784073934980955814353152350773418453744792927183511364639996095347674579497793780936419804043598395437169358466763386074370506453790841127112963927516875956890691441738426146540809467241409879000703078204207819155879726660348453934696296747748116486101231254308051999141347395458738818974888439378738669535015658412819412837352148896608300956237217280365275327500841226201091732802714766937901997846158742346705570412003620385505239081825411203968249560316168795965079275295237826158189239119888012993546851389848102119104319715913712209181236921604754393539413113278216554106058346718661837439438927773864713986460666201478308739385045710038275064295864357429818707595856097897726917813239427001233737263676213474028841727415125407847853406238077161301114920230811429670079475278864216258351788851109915528293493293798869652633593735808053573822580559273034360051852556763839931158953306400027857261414178741859736867666672886252149477602894403538532662039477324046381592509514682914148937704135956928101337070115242501998708620258207157253234383968403284534703853652483399566956625900549010458371272108586951228504388988039418789499423516183745372646598008487057583829773238108240896141897131433742901200873387686765969519244522672206173506187171549327259171504796493815299776821275714301729371348157341341255629818257482055338103552986572717262341365529869696595058435263517265330937124081302623239620030280961692938771798904778855651429744970535031780364977626329558169337923835457850922138962610723862631950956882561855465641401875348001016944297220278788203609046860531230191953608585538843352904926212980262453624269954654144278891768176880713908087706641955131259076528602055765710318904669411474231388740298206626819694176890103936123560464261536379041703201413595209875434759310100287198335099130485672731643287422692540621268445760067222515786432749770592940841319007975965912915836718611088931183252940396003114357745078991921220390069605171396894937510593968633655519953498613420154628590335430785160059806590999372476267285247218074526184414266558911625966098808323208780611751055043187319090435143862319195505273385888477784444201692379499841390454233846284720451398528262740279511085643835850773697893962627433966735597264786387267347769341918649551150014577191160606341209728903947300568547876851112143908041626907931863628914137292021525991633406755449916407753644510801601378018202505261528545316844595146402359740591236578698520447870993332631810666214722897008541864983176311091597714922636979441351507949590524994418852792257299691062993434475535584875916777694225178844105461934171569584421839593220108417872491513466250947330054041850056971410538738690561354255503309090636827650696436131673950844309000631758350097338956287112905845641250032473752541175072155065873622741810369576240073010107346925056149418624203986283402061826877566358876356701886362876127038765479936420571938763969748384732155137615694036137641895189887453770906204289399868654455892997599205202769524440944555006077455862007952348349686571061761385367095866448351277447832686432255629918579735244407660123278568086360696011261715233734619861518398020330221366976191201628765802517766914256497341526418933681976757315823207683613525184102038874691605715386866344822972097630026679174529306665081200987769435669019492498861389589446375621058909765532821685777969604765559854424740776910321639616114043848626275879353446376531292799291758792408352950309307432806347266681082074581753198655460468592641778097688783094561261427468075206079529507210081360875516335215424638876412320519689304050091256035565315617687166787855084847597899316832468089621401014759451266166237703527734870105535359608921952559885803704137282819908510218906215339345506556295083056318372229266844248894339725504339692477226029701350260318261444603244207189337533482709266560499546923830136865710404116179063229968089875803947255636882532187740803714211035102369763602853402771668342431480664093212871541407715944969912257230557874462430301741115444104929114352104764581459386764440727526792021759066944120284223590364059982865694284937530933842976816173608049213976220279679856101762870194743313328112133962359540736308005937515376309609993519569288817909728696330969646984294719821716172241451206554147932178578350451538243759818605527255729832309530638922861842532560062605910695055856062928498128708118768289343398980861293691953649480982594797142099194719504584860847771490856306273701140177698893383791101629576758107941758317166507277013299000127688535990302866380344930373092111172715020295803465728522010333933573999718525047534252136088046802503412014697946483057017732907347493291313826298599853074683719397469691245692766672010301647665012629306751866672498948968155184903161067116696966486986032524105534298522909986295214063086255299979460302789540974065326106671362690308130511337773925548977792198031830085610139117230481020304371806560521501631941163711511166881655959617604559668476772314799931843445694726374840638174210169858654781979264658811215479502278167703345535739783460367077577884833020514345962762528678954313826454635911047340003095857331651784702367391276632073060982700689319174564617615851307490463197668092024678399940334420712300939645008488565482448511283662271895580983113802623212821880975794270467265968108672192608739950965631136341063373606844729770662519107739144841629192388323583041135633526302932250460348914672110505463204036736017500824242208007487280842847106068533268134683607274300993496148805094141416962268960850044784012497076350652463943360456647178427135254559983239493586301818699019328231813147280755363707125778766203995966811378701164719888198151776525129868028416708657508477993612446813356217751622839434170278808869113195767596919872906222593595886624658194039579276402135940371208308952377464186627340254252333202481548661340020534213939321205100721376979984847161856349280194258974967791920478054268201317690539708865176201481024097202304679181998486083605505027085494340781732388435025413056386713156823934788943862463404290969771007911744779022451951291146635132798512723203798809569470361755127168495459381291251779184804310220821681691320991072988237417618226414327444307960466310476321563325935996223556719385067341697610781911242441219617343252556434462822436269547126066317863879860850324445830310898359038283417358516020510574917923738840331746255697236577525760151478654292687391611228905747767495172779099975721629003462695982714610765357614714083363437131582304977312772634990801370989139535009301325695126037721641725468559783285651226259734251394973537270578404201433396860129252419353639899770824409981303548986704259666081269589356541865073622613922858962078902549059482810762759798633374775208182944067377394985416299542185943636024170391903718537305464952410081053032937058577861199521120562297116566777617872457234873190469721535132554767572440782545372467119722706480263178442952450399006878514403872585382853987613902918321939483469216013794317148554798111882606391155011697521474584406876036340015645545148493978847978233726727868195588910470060222516843514965433872118303352071611143170302339169297673687795612493690962175191831410460740162427761556518714767401395850036097839386299163784461237226782044168780571963179462232564409243692056423109062683763566018553578730242641614027661552507320782391410946503150688040825107649060235793609770914625892691453654507353727143711295931921462646271219186896621634752257944761585524715420853197889297904060575154748895148128562917696237950946804613221032582857762376428290481587045282314417947792972923228820796625144783092241781305233359904732300904019255468161571717351880321121439085098453939031189150708214268114403452017760091502582284823862069619530763676579355800007067731842555632517246736986155197856128463505357668598449857062780394978992619946796114003940369801277308566575492974423566080230129022780723231799052224750679064088186001213208286543716935099219399028795234668531056082575582889619497581970997332112983043381336794031742507359040999328064340691305121639308135757343204018304929831952988460246834848582975040387877992936566858672744156799895668268359981807210309921902501357266877442374396947489191925978901065981225288938499702070785610123334122739523614751502544605643769298094416926005100922002937671054377597257461111415502082272506474871345394288118918241298815744738835103160881999927425788305809144702044213386289578460953279535542130548899375031608059829985449756889697843155112849314688110903163100493701717031359989125117957953049221120931599730316846849211405353713260389316507396974079053868423060640327603755510957238447236204034357298541741257254528959654858509988809553358867492549783685676140730394032063662929155929618172311184089008649222562201264386757399469460722861049044601506015871852616481793443750226217030709234840661571921086460216039167650371655617937623699285976564820115099215986856090779793413454013377594296766415186055843901054860165840857481983222571632065888402931014923051059154644206321897141777339810022836948367762157011758814839152051490230745798224848894605501668329861750463349909478294770965914909193105283842206854485248636453152452526816399825100657194946990164227809216211809397342567150843164431379938963520197878253703247631600125462452035501865267115873530721927775598230504074012845277256437733922672660730747495743964867618773710649798299891872845546943683169016617091890033387682198055614708874698968677640309804345480532336222009732042581642886096041447879842268565734737890076508474946745325183674015361013794587070177866771702588179023411104116661319166947718075011728662337990623389998684201399695068660149562903213615372189426587583876540224396724066222455045236236876275001529046336457924428895449640580815427720951357472425487502989840594736642954134434059223537762324549221567150373621331383841780775330566402949328948264829116800051268291005959989488847323224045874702212350912456518134330561027097151609867860698865521604140252319855051482546475601819734296845824839580517481830599733143409949306560942603323572854834965219774419398594847570899048652421842765160107054809812162631764677250125779949471110648016797473028551600770308840894674078746204527612799574944863993977154964749659237920410801212085251769898559059323350044122050571098757820847227215871392059417941387136729543936282648889725664114796406435466410849228410728895095734070981923859716106921368033453849132971479554116764304456316241397952426545455568747974001338260356054904392261605855145282385494637040170978945650197366151338036313090038685156243910043328209511429838915453168569332163967064952129832943289211685015631050303067866710355589289530040427844436513074450377117837209343909711718401731435288565335991011344306996327066347673848475513816896774877536141189792568031235441155009364404880035141468770843787554112372275562109467357090300016209246581911037560431384335371598344737332351556253706683059915133262106270453941529500713469401878650074668313437950369541886226058782629522669752323613540120321121212104937536011095318464383442349518963506799136301450054993383018525675527975868511623599529470185294424282978798745898559725053666370425078232451601806028190868192238862365228957730216948176562544976260493577564113040464486208186111341336302600863493409826656818600675450327184499845392506155046237776450174314049119665759257040705527805227530546749033992601177201782532542247102496454931598818149470484549523367975182752643478304872356116324357069598908026180647470620621192842279227785219145655596189396067139267840052752602778089192563390763272020107262270169126732849942179373523305293222032982652267044798177908244048383307843556651361258557471601911324644073967889839618724128996176641614870694764929087918074756338805717808191633756366699038033314862790072045656773927358794457964662370141290884508958062457122941302418230056295331410403092354229668628193622539973042127960486566669034566977190674812245909837459508015734598374087274514829026512346098112269870065665004478037704658145737336296632232251174688122020646849145160837123473578267175334252740295247162566132319174330394107865291334695574079537913694955260474624729964433242036480276347772754273445608518933681755301936805911387496673849150792923027569270685393457250646814448908232198123572960149834641236599372380547432382424661197921986203347047773615783602290910918013483171665457002360549722325018747925097220271896903382936675546228985396785125798516771357182285174335096780618365301829530120046443288425197339977146368819166525373403529589426822452688366706736321090929120419326925526403675354797020988877517636329021291131863908694992277474792297442902880107804934516384972100971459935107433537529423968837383779402392330199764177992783805237765983734524420325146452637015802847468588412674707611586921211334697168158021015709200508455789806358313960712936462563054137234395199325020777321465367620323691131937889958296027133680944430627270592499248002980137853237642780316893268223353652073214201711246011297010239016185817117038330502361118239028642245124518534491194995018450744365097628489538792427546076667207566273531062445063393431532266728508052810432978653234002029249158931687923142824411941183368019946930888134453059724135965322013521564853432339436416716981713067758721929639022044673233115945771380280534884913505809052884343684816909907336557457844031011488389655751730229186247214565078123400308492990007212657554007455642092548158220513979784391631970355576080293802726162237148066873963127681858820661251317847610274416362393965077148095717468226795711861617948942405725792663898375768285425067262671771646809525783594143427449735645942333247137100820472411167983822785738947973122187952415037039592219068642063979569241251734096358095926979380729177973954313677674168824071780510921232522607990089608079162467539398470591074636849999637642092466151894217865178038320320216739371586017931720714502355817009550458996031914474877508470615731441825205226201327315141717726913615502538443684623282154631211066409400961395545867984579028302113589478004601961337572003703384306674495703366513101441355380769958571070290069993921117594072084941365094303730124291893622243139436336297741838802192027457618297496599608276240004666502982944415318713363560148483332787616163804940986623462405654240056533296868166598112453367324863818603041400263426884749529790328749175677896763976665021075603570751867812589670488448831300556965881293221641851653480149088461316773929350012967708119798047029512279634702063441163157664148801088735631909794045946007658985720416766382017517036392158606575000802191792997135290810441825747620009453715784358378937885286750460553999053343707330044370312206813647657591333981707117445573474487961948235412896039756043759066054223015065934061638270154595973231298663308650724502872753919341579703095404577299520801502621402971122142587306808988084919162420404744668018433499231425342503302870219742472138373052551193148151199023634318509690660589235406468549228061300074108948615469324117745933686113739546224429430608534715035294783939924369465544148945437949048424098238240380111916449098901383287760648581653502810540555250700087157545701926304793476902220242241689558131950670015967820613746647461041478786359444515948388487844800402115189684751900345692229766079410367614764219447941260344711465610662949351259574700825534192731770762706228573884075442953601274580964185720294497195287049386814124561458064784596946978203904681430749163013923830362472686984011348049439870419157528541107697571122043141766193636186069022165562460595050863357203901768669642099150754111728644139172740217442881814208866871481294073710610844956059763318430882507601157935260237956498129166802508143449403570340918629183596214940372036399970630020058889571185889557574446367470018319399014125046160283120731168055102003073123271390789828917564209681958983192863543501812891033297351734478088144452697462593770170642226198543952230254275414404054423532061177749452233521755532277823948016262734780400380263965721236688091204119473662185591702187643240388158055526855868724090323182054504748169522837131641405318707952825542651891490989628789158676227694274997065579224494898619339101011177010267722740686866805997503187800943833799947588091016963674856902074386034883095541129825497987665074422274126972019779537332417333797014631842959991812146293704522143548665302157772393390709244896529941315529417928286114062673457872579979737296662001416382762538758060527349449653698631173646965273833977196930119059530169107508764631571902046876042233755647781092304403569780431788140857800597560678471010554919468699582351294730696535703928045983944925230593599484044806500503445151964757190932690481342022708841234825007132161366005499495404952676249962216199059238793073305676791809402954518827124864726012487716914365476973443352573884891589102557423979691262721024288595096082680836242238120706842565490399272867299746631787061078112705092063394804154120652780659109014012397984376186532313833737399791968138558777374904650114620662190659657301075705148766702497519855257725537341038388767288568681574726009907921295186188890412052910283702829851542916241360026961656526474371791963920278789954904699872469508623378587973888962060433129003717430724419822772254738605306932381475510978425741080191399329897929438607968733403857302029904161465871374276604554060228372105400846349810275962784086416397640655750332009853315026936122807111672831190719218727567940003530055351518226019408258576407868435293154289833855473356770812845029195474328351870266441782305220861648104388235471175903744486375480905116089844520332662999755648625613148699036073128141010558495601653772747711107705335596053494366299261261720552341667096150485066454157711034516029536694074039997337724489315353995888314091145807411168334059693994342067723187090068099343665714855566244101472266560462571118051467818885261111409857261340871194354233004412006695243472459231597085570280584451952073310891971429060640008572617092616001814732162294814745319234502601982252634124074643881974798727368274553694984895933204371054193391540684014949268221968581303165828050217036073875755652773406040246843439927791227924911485580417896762916715461341455134048356924935396197131750192784967670199410039057610165555539064979147463657374614787182750993423766581751685134558643466544094672320969120949715010870734241722932574267334486867387588773995435665904429123505499075767608750789426188551380828083577652585208806534477457676168484024526433162504745764201726578934909092931279746676603888892222217822808852860055036048429199980070719768309247224340654537312883815482975851189430719050369155120947608161159751330233982211476707584478568785472290061032737256006195968056384020083243850139281511972104547190601622277550724433596413825213389263934265109184045319472161891522673286134766477520923952805635479291060197070853535822245440268577351013650150882872000374502064056950472582821898076854537730790496691814608368410496196565357301659709445345684174389671928887454689501205488549280996573554045269763379001417656464190898632420700136366097249460943782384048298219258771054220541408019746717696770724392156563359517621692286235408180625297811218437652033099265922909878071588345666140386156338454539099752263912242075635859630353211773198508344881291973065069072798648649629433877193155122275647746583019597150803366348930535368951054531933690322005730965594594573011682593226373613352038083627243843977651952684800483830230639925531451612743676926498001608914946427028451457948706404490604110354175157744876697741377230954145046782819086699347074855144652929688871439864282649230837799665972860611998930912676763823813088457887996443256847854959937414970350729365197924696185833459124871476101544135878638816116810127772751925130587464085435976243692795391610474999584363646011967062867809441384247483748670561782883711934919700855686320811343015288542618259918431825373706073016743796607539454809857338588840817653593763130984590718481230500051410635955401930783960163149358036271364004242093094100450887089287814474285511544639530184870854042370974183763150780887690572088253079058323868746069282353072616888784960060197057834111704638097353118345202594507168439358141310741546046234870206186540530817084443917197476918438465693465358577429765156046002392918409128673675911472499890181274570601579979186000161232164696521415507362497825068643830149037638703026566769069660341659171643727147148090709036377151560275483125266273046905472472446527950110685769699330883655282497588842730646282152314838820389174909143056218093954938360827309304454559336556134784020197139949639015642892552620619741521195019246924512615529261569985974552981720775369237032729445646711307844230158752185631769298336793720266310596017026939574989997795464607907484116775930545879655802416718917830019177465649016166908078204440733133289849101660900966663365769021247104941667054445208617035078572614998687634555705085133101091987093069633912192179308523369706109911760301561457543770406820722774685669014544094412214130069348022674022334747765202776719668065623268458923621825588571962873945748260315489436661282405997705738734334312503091341962248756130715852290778407479609865791677948759571151143906099939632786428424352318018021650906435187350689163305585474426384311201549599017754090695079173470046991407758525016585726372996908740961817242774926367183161726882491491177640405121610777854105703018023262172375854592277524861281515145905588352051353401163860834036424579222699905931385229028012387801942837733130882424583583930298175085129697942244245649444693247782472475099839823836077685577462287916841863052223007868867307720773301589225388526553114076255980140618522387397010926799268463781560479338960802420024894495793199583747823471121710553224849688455188661998114931822538358433039297830168419408912761517363618189632993457607755318667452366312845053142232426328528672799604805055133758496836657997112061879847137221626663530388975454502209238672645520013116575169467392730992406241185217723841547249280926899128106129304424730554027706809274129902554887871670348319548049132870568546676420733464550644994428317793603213904263510062024599342473688272325733106119336007148631451845008671538720306476742700452242261125407919009147792206833673976461039110751694129008647456906890619477286653791270621111441086647714697111501953704757863720367577824782412397758922908389199921708379085359199856108123304624798429483231795338601514718723963593646036310166092507063118193576870940179506944652146383695485199798534844327303441581707898409103731522837377421658522769974213656294504015842077313145645594369908100569204800960981132923039852444133199869374336023871571736737079590076319144671541823566071856122786813644505810245881938871005725309441685118874726044467986897017497088740210480438510143760411004156844092884705862809768029639053732873061197809933338312953377594430038231863765044077856084014638933216339530321654997905182299500416115879713143792668466817485850765164354097804578259757479132585672401472047766067242796529073549814048935335099187329700762276480646629545021082549523860979966452176371792144809970678835414633225141994979491242958066521819778546548269093196643622020911167646684282180826175832434131523103616382389736814279311983276357999762104172144016761168772626337393102619715315828878183961097190486200231809604023258245296189406155376211268434418588769168795955878613371109955246151177483664538869820583567001098327129554005550908486506096265181941754011593691227376863624178088861804843052628177606039969805305833127983858176860368084052216230945894376468143141360576633383728260153311857683554670189081325664175502152826371880782813210808504479983385661453337073936852443401701400315171604898968214555312299770605462760226999654831376012024603216341264273900841027282967818573700695399892032501258417286208133369834769012949741450697056370921179381477760714662097693841481410885262844183242180107174858546996812261165591160362931680287623341008198797944933000577836720473165344167054085824214410990762458996017575492555791756623859980564610985556740618886465377869816312183062724477443264217502872288679987277247300565730774194785363121955159578024999206509632805980653241591810801212437552745152130334407565155086695473256958105032946960294891922185525754350716924099962473993189738743530338516137906111547352884616851761859414610348234659006675438618734672460409893998987593979355721296545010869142807188345479032037345625160490284194025534892699386114262672060184702734841401603050609131365416007124673973749688677031363928556193193972650889202400032694069695271676915710680128575573921595810803105135245028194657863574998348436936652275264090445188718612144944839278284368491836284087957134215693833841988037530997203545564381489428192374345219838744981891378000592261694507126730596257751251877386077500167387366316346863824980969733780313067669099988814222129622456136818378508257543514956844374526612174707211905362247900271049105943814201732142048535470847306472308049844257055893933309161950140053812190240623266857993471067862753187156017514413603494874805168888182238844866344681858819071671770394473094283260150362714825340987132434946849944377487184660490339166969690961628731843613767576321552988168109078695798996857496139083919505260259496981019218487199031974133245217504042514094414458520436081750300347580019716814087124490253904218195793683030786307213394268971912216419362262476777996526975451293039890301307098084912782637038121920977996046445106510821929926485058957357240434509450437242957233894815400907394307620948415501903115190085015297483672154179266299466598212471157983321473346879653911619604149491731187024577332567568324865178697277852307992922812296625096329443823575859960643257729658842138393716510407054906444432173921332223243397955749634340885548920010956998024260925778992062100659463823915316590857063933261258899608362039602113468423005398052577217254526272140894701429100443909623646475768530471639598153002127392514228007193655742751338034867055961533358163538914292728712635504381206349448377786642365563354000302569109499005464413304873220097174639945154528009092362911427758410075117922936139915638639224843086806630780696299868040987595673722314660595219956016922832595644542368210853355369604201378890078650886171368103733335794939442077478315871154001151332057317928050800112356569998852496455206440707264467213514962794163152555547537469541515846645375627688962150916490562671508409911093203317041965284839450692431311376842299289438816042238337565231803559543843581573084200903528218715047633828648806306307824523980638804077572145614449939624227832137923785460713015379476416282616553269331909570807319275267861578601506392816499518980947986515146720385921555574196470948859411209558064587462438734186732302270179175682396868159337896146728297960300548418328693677136579920509680645678291326274786481383411516685725665435975413108114089561360034637892195797545882792857872045952003460228562614158458471084896976638361953483446264850513226978486263311445157189351108734175787237048251739024765254855889223175299798903664624008377001003585029695799112793550562636477054032219452964168414871349218817348695728525901523103603119185707386956085198285794229838158988943621970914390241953710705270828600253821919567905915879632274775906765995818434541051276064413919018591423809917524331560446127380381896286752236561358584134258796012212925220663598729875679881038305117169722731270652034806832473544232900581934965371397013266519884277173198592070693289655126720107279900184215237718616701344319373016720775842128260915442814128062087777726397138685088191684457837082713964877932365196017985173262068234742067811463701976797056339447473773656236792256654503442753617887778198895862733662172511483054478727416544834239659485846427347770077848854157082990493606936448013678374129224951484022812339471423446698371696533912574776529480524537088729968614873080650554888295449649454695012756595303162560957595742463702887855520359859201630740154848900510869225617321210013352488512909650516236594523251450882749155502415581321994255695424820525004470018182087012348077269184401568761921266501160371513557495142680543510506729197200099518287359339479586847939461729754267371091751606477371733314764737696924918565458331799937174802652690210113448446477720177784304497659233136744553777005664072726284727574490608496056919404499536164720929074801425964255377734293460275607230381850116623061584152200378022170185600909031253491242342717333605582200821982632663233876397838384727551037956488260877928752884147873437540053164891446616769991019231439745151897101407705970500907089055655069836197796235057343708394417190849825613657255945592264496287337169244474239977282579793682934023467632460056094713684737152389005065643955648596794928715958324472133377743207648452858319002702178099075765524291971469074672529250294417098059380537575339778161918201802367369688399212851484332831795149979271188633145653175157112311929645603026625117244038758526560750097529887196550043192223632731054805326131865493407596390076427957067749650199079675650849653086015910016358913856166407517937702782041131991597860999880498989544563688204873643541305252981328579479872956905769438724903825270793050443626657200940750313599194883162181771621946621445707287532322651056039637637455785566128807670687799948198520016878463360417420113967900977818976349975365944242477557156979169483998669803530856915087523176624950657034780897110259255788275050851851875213155730656984225058234291085698272814677183643047324884036685051471339239265654528851804324662323254762851944719779704221421001932098988455227053919342433970784494975939427857306013423383728943427600605358149478135806744440755050040905145069397133467473896336858338426471216519207830066477281546539030031040071074421412226617370825299051547360575809049196432168361060270082216052176178801673023802431907788112150645374300414178118916886390994492532852759184174134570408016259154680850109491452965003971331479938302862321227549349673224401874700718164722613375729141233180039297265630109429182803256425026889026987358638841847043819072556589240349221458945936594394524236369230471061296201147728543043436530390564792293965934843808007464703664415647392665967382378306312334404736804390555415943040455761454969117372816505732071879112052179021036187808076714948979784380096664544536239455111999790171930435353819048341169274120019537444485619185452897690800996948332097561959739844536730636300499901609209039028948556661767617196640496211594809861618296318664687076861815255801538195466753773821042147470028441988208644131581753164936781889368324847209694718680249597967425049919240212352937466254221329829816124017391573737757904321134391232902565964810994210430426388500517007012335840978002130231531300414897977409048064448482078554483648430012808509041950285872862369431429289747950803761953194783030942186790828195008535230916929984165170077714953666006613167805037657301961540327854682697391472219625388435135822089131224517028543395230894804140391585948746008880474789862846141593220554139479215490896534375743545262038800353086115317401931368371439613605584260134343615670801736237910632163058600956452841606349607719231889084594542574269711897005205359883074764598556394115088482063895986787857530202622659978133214022080324328969492769777461514736540635822398968291596297151097432380069590827479226055849558535985577648099602333705697596575212375649140646131745475740858299857087461128763114927109583343712558965854268049034634175438904101185821267103934973081477378131950094184331121133544787200725237269989647472027888946961340109248233997672168525633672176043763549545836595827665062274129329859727365539730032732095777178736097468623426526296698169619153615716698168748742064417094920041606125464949512780875172380566306663113031772414568371355243150966961668645821392933966914537041913914532932878889765528406240752702084269939999229621388426732807277691115724474694973092138348711257074584042991884994332778741907132035435751177689509038274564949465773699922574734888193497851395246843353431975998982821390498196966571971135675861075355678565689428877497847764516972482169619164647016085497683626467160147387096206482691905161959947988178310307911836839960734885728437880326320770712104339788391720502697062555751408382442461726456143415843422698828501737449476180606647933405067448989473035345424972816761525699366970969461435921191430623461828467603241253533235175639023842892971659730227403516410884465797612731665287068084265024527002764186396852456575360354830345460968036679074166480045223935642733203268446503795928961144786258888501673249224100379373207447814351840501671578427243193201718668374635786883978833991744683424059200594849181678967689584193338405996628632026510591529378350690887398057920754042244619227692949019178785007983369471682607380529976436415020344744130637891374980074818368235760961643148007450625663101760034466033350595284370572587718151128389244791675854999706313582192947637505315325269431512343313680468509728369735579268420899833741545750588020479407952923119386890291555581533742910347515366856156987561672185132949834960107035027461784298955710705762457224850793074292974555317270554758575317888300138060547467187803816264222865633769851052857082717877306728965639419213600332182175227500441887763852502328838168671274143455353939185755063932901026020347110408510686346221347375013325290282960960084464394543604135806659515600260625650828039627922497051463575219546089431426309145594055767175982793557529318901639429357848650285742708334440886182544814069148648841846350643254490125829891321995445812656815840252438837358170428021504076599869604501046780423636543323191356129185230959184842680189715841842889700970011693525091729984125391130735450843564229003306851938351715131010088367885255563561515962733232119157139375646811805511156036178947975839684361115767468846638053246301859602059032561676175536901260366500072102555592301252264410555302224866481982629230293288708520802470384883791822889644801198519417574932608632287313088656897991821288088497287550758260511278511566923322329666968473130174192013234436867710881553134178934644823284317704315411503441240554615556925200077618826086379432599539383004944295477518805184373545776877585169542871887433469645520997074225529146102261078381173817377118878033331288561205528266409425207621478459360328040780818156729233303512869149103446862350603971710310383763655629496112392846207495437429300876038111382314815693994512884387175147966368060412087983342832793004900402328097928050475475853874851481036158878948232926574872807184925617026868478735772595192890610990025367078445316008838475521548760896316134759592241230917347650409107530464303848380172800102774507781416234481013438450889138807994432783575017072006983052114643799286972914219499802465049515485622645614012880259675171910822568125648829255751080609152085896448200379218164344441283075040526768272798083671816332633027140212172099164708304595207118989469049125525860871067205490525060299463810254236769594822110897362053390025882678489652942131169076796909736516749188840845848281057398326388492318194689216723030492940021331261129802531761141446012223911686807433758866966681586820455900676719811077455022652251849268480990760822014641422760648127928511726342008051753305497829225876570127465965437288317918117845501627286446544512183550818520914268621737345383118316326478835621059556021524607772011071448847564505256274442906798108503002576669899757557665165351660573643705716588477683659040933792747263862326809312856101257364400785669414832058083614762423907727657498502932993075909142806410313939143871447065066203408000548961363505472234544988956531886415974272411933649839011483261257950753566747234693799104732794211947921724534280787064327754814926317754398733247704463544000843027525400991791235365486202730337035290876073481852394946696617933653690770916298963314009435798414610977387633525709673989131238223265692922345105292284962830134777707738658183089308797442146491474629702285188483152564634634502643123650928405599924865674911427645047590594383927541091008188535385380474721647132738140089109875843668517681471317334128618357108079401022088149887950302624158509952959251911480795292095562018240611416012720155081126743597141095615545524877647499679246845640146161406971046011459099876780505312036964150909834233640393981398706820074770406387780451798737297402480346483257472348064064753229468877481460253647094512350292461439790776461448493919299826739857364230841621164800877998271367039199005531913595900291314506699520176813601002317953702716369887652236110468545938059042733230510542800401780627991978319365868906855431766370417461782709927153580874704213058502146234774819230261618622987027708481233706199110773996859211462995529131515552393205560964227751814975943078715665745206078835144818734382401794728913197949540882689676051506779202085248928079619395979614574494551809663299588235935628019747738159150716473328823643267261706554190550046802607753570657935427398527924249845225976455652178194853589182551260350780481909353118013788945280225447068275147780336967954790963841065041753852935187612034527453095735437127458025629626739026421816715704123994038254643834846362111582566885657198846464478400797134448679154875426256716233118873034473360101749814108616681433705675439398080984982873250683402270577211279924841338129362371604811410889018117786370921457838787495756013345485356786089051395011066437603035556597443446393186143591568616358033472577394592824142250802795913688392611948334486585342675686360728291069897941316290052755560618783862524816811788685023442651363207924259269554199735293614697912388592389918785079578046840892740283028694192667108586560264497704303344258677703800003247296038706305451173797173682907250548289425171159298158053994930833097383663867730308113219083743786092840620568392449076269534080936395096753150140443774833061956405794930476170709456168072697785949830998831555113030436242812366905607962363882011873702598555354961798707472881143277201628681299641827027531271087086928327317516009254002593064305720381482083396094510592455162056576188105079231253545099311110546476358209973507382110434615820263604362517757577900772490710576906183865807223284460372461227853680187462223469208848555246759621632829050471021473181292962982065723751505567091554900772608841884277676854778453851108133128616172471862558569547152257346899309571062542665776792869766632668143359770091324971633785107332156333501922294471619676431777727918068631996383689204355192295195834939312895579968000144066198218377646580940405776015061575035956014531212014591684553789593157283394638224298686467407788732334434975852322558891054906429020434415424141302246651003133522664177737771750956377898040788042307972526410965963515046273644266314834143320328585493338552996655409766145438609311501720593692463427327549778193773192172153719191286254861328887406846702370517435451682747422738026149208052596077407250023081123237262949425164083658422469892930187193799478131744050957979557505708240148742075197847938701785857797500287944508638071730284366036307401096095741486457151687924245844008179517443867103811560488891948197545850152034681103679307566633191290188849515884633754027318657162448358384683796101158474775062569039237594457454185005920309455738442679810947278071617959084806123751406921444274292312235778765818292651334146659121676189521380029143699946401120487314276330324227908301405725313111167156253875322424981597990526042159441469131092760650420039718312740240518791074324166745655829680043752071752359007634081808062859836230322900200727527719457061482121640199276724121088796787950875743010050794382567288005739716646744668983154330801109818010502092863263217826564632055659748565807593428413578423593366573654937586501976902196515680122081861072353959257520159263859507391285170782641021853333722507928541827888624805574052046633301899257573210456077623421659584334472406182296661934844093757519237465543065171716371046531030913051920277757729136927193104725323085770368058942498091609923152044669437036324329021854681176160564887575943552552971688235415143507259782488172084327758838565483988233842362351706271724560605314529578765691902825588406155080405080235585517417596336835065822179371381569447969015648356813658904789620098752825573495069860262153661698661277635068132599862521788402972603678448248120371643266948434994057765601430047270698242053040234144077404310259674807745155543737142632639239490642935386008774217614865458043417382112264804961378747771138922191491958591070957564494418099351014010151763851247879430687371426729671808488609896609293945367926307021608249109968231622189114932089065769214592936524760032744011123657896361344420383645312882972442035774411544862524508549614451491777966992235365134067064659777739426883401166307209674386811246672482218546601697831106600430053602144891594034019886837295282511645049044770014876156485024291618701882203512711697318741556582925414059565617534547127606208149593441544052578713071864504922005403093337090518008459146245927542020125371758699655799453843618124933947490735245863792460292793311658217051841779628226836097968538618667095848320572679078772379528045027364327878802691073227882750395425721699093982311025285747116981213925834978421665044326936999508008258731306878859432175540427621996745781505641239470823596484382179999281522375179869604464464326309500249588968644368401779307801734568742223265006737594229969581617507692947066993961411470158748835181232856500653750475472706066037040539364705871797532364610015875108189245656302411782480726898959604792022828522453493365089077868416810137833637039759338930284584725597469816000950936713740936959656385898013189009078473024402277655091211925290875617228026475236874341051627929553177016016688716439113522062343249829434187160862843041695231234706782015289084461171769714895622739072275039602961837979534355026456004774027082107317455639763953086441862768364358960149285927364120011889912747047683839638571470468237753160252439410341373020605032262882502660177145502294509127837313094809449849039909746888217161563121193105750214773115564593041513631748459606062130134464238965348410816079546310933766795505171943331162595055483252307162993986065854436159504986400476718690857692750298274294082592918630368978909062910841036500983143030039090498285730272241124950818400428441586160246013110018952194323032615297558852126043115916036383153352379938834065152520165405633642001389097081780871785070071458288701215829772420762117532152374711317258976850014870301887213678940719610396417150020909152483568851352953355656320409659372281932061663775514343852611741043051358247805667381953154300540350862739499781278597099424758149636717796340869874464821038277812088100073269681487063520886809258871556423411018569849349426557397029201536537549529689347673829283185354335852825837940600228758331927474858178724477000986812833693422717558870715392831864347346435522596798289980867323147657700161925913440004163492191239587335521469202091148833673608658283434463481380782750724974751027112847483902784725985968066729687808379848007944594435990806070603326864519395130209156038140346127044711870750700367694807134560192065511924721314704310028875834276669337141743151622839391952433655508680425620891758192818285518678284758834681477549311671948014680596368182790231756731251425597945634336204464932292818746526523102892889898388309350134043926214433904058467073091220612222828470767074218874923527436005583654792352483917264790155188829133295244600139942833103602250883377999874991407490183823329770106486962529546458629212568303394700629296882187326506349725340373622829936619332223713312384354402581683052968066083919478295323248388125606224481112182415995679062811073095701447605104516215630970602086103820393496037619721780183335546436333909790826818585965520081015823085588867970713422802730882675897942811536274709078468033566294050179067589129403491763359716524005572587139273229262162811115324782908604899934956146422894568471395363208736405895768854003861421790092344813344302907497514324629090259422801712671482968011170952374033367265740387552315075634843096140028376312400863350316040353214700106819672758219132832948256810215556073415844370235158900631732004569576235078870073410304397341778227294646361201685819701291583599178998623137027888752318014351786867553244301950948818188072743567755436241083666199417315570261860718835657989456789633003639528250103294016735558122857248324045160932927490001537122295354658106509675576765057428042879294241152025162662660*****************************
509182685609329890246916681972063454303463870639723353777098549843642720524352385399079476423521761776548078424053513258803802089538472990478441912248787623450073110346746074631052790919902372777151342326195764631104496922221889059257671420816738698769332420483572455341840476281369623512443337334798067780473627087139164394450378824811866344364224667276616201608710821550128424122002448190747269880944934627371180662342427387457212752640011714949161196885513803344207114282613975176482330585627500275411895226223727939786272668262191393198075266475117903579439487983993233824174729960489152877045793467407908260350637972468523912335231852676109490911309110484523219247714601423570772434043072651783276434345344658434952376844717723755688873500733243984219886264631345183632378397271401345229459480372232774347096098937878730310474561451385049109047514060059794054861122738633559540173789125700044497751218094212703884860184273818452912464918245551339943219799869364088782861522717731979303180580800375112895365490974344778410735511320835714590475774867978320089520016720368144177415111832294937566263494712217621512488953343384366361409154603068108491043786218636245721048641492798281737229132693743015827335585571762564376380791881323838141650279010988511506799873084447779011296609539387041710783005208641514108678456436926074619131516052541860152566543014541995346671142567231958889224785546248557634412906232900893227941784728097283942076098545246618346960716841876292656275016002020825007434549006807723787212952588807478660253161970850976276172604032553513702217856391746185974561791876681062210074921311782173306951746320856168319031347115184023664076087094738661673366723797680597072922088632137931696655340367816297426052411246666903920679555997105558451365512455591837221935997437232928158463971193392739890641329262962947114506298316540753637553675105254378642814941787980236501125328541932618516953175060163372719945768503227996211946690493528568231971434446371051502785741122065705936298339160275221469533475272060263922742250001077415518812190166491104827800802479069664544322507327742894822188204004613688934322770293616778402069539318849860830795620197469587398982108166738621063480637637577066412362820589623339740755632687604867962707403336735825047910368064601610985484614728714089519577589154220389617980339705946069749519549480660563050429162029948910791698145560539594691367725853694216446480758890372168565277535444709994558688043022707378478631183303078484416292071643700210969378503797992642499967419024272065598493667584649394187082824362465797027343185367824944530913356101520012662902809522957773486591584055368529303398264466914686152449731300121839255189136731142471601087286286090738100125178556660632612003102621588009019995127452946998992434395892339289536654227075176980275777874660670274167900777070055072205545264585241884494424479720310066487942015260683907155383011080076601007411031272149355389480478696227196210240441388724608243800831095633019716973376324048120772381984215816237602087798998863272978327486424171756368528970171974337645502886435676963934492141139877972326283462054213958995250688537729267347520293610575296574798911057437228113595940707049665830287141278487414759351407794068033277118757670123253497344796905010634283141960051958718047139420882739080501521011774884299748491473676479541143793001662644784468899008014179697857530937581272041809839228961803389412570301583304474774414460290868067984536548855986417096164441449583258394016163551526111697241338954405750854523899776651771739592400555163473585832760582448380414266611227325775764131081011873097561673528912007178341592251531167419337194349312441889950273588722373690280160494203878640927850539626598170546568006547971700393167629193631099609022631478649912111418846975646356868880961917720538638743734232364124749830977658974024074721484103574788455867994126067605392483565848796765039280343454691556133955460137674559331178069273655679622359967096160379084580838743010835952089659940384864782495884093728728218139325809827050656667373057103099545636284096512364101398262325903095537545873208503708536555499588045101147070655808922159155007452017366628856457008465119898085342592388170055547766370759921596202009082058318423553858651160955883680455823931932430609503570543474237484531933286595725545040034324215831340450756824511185550143696703501394328399491822591673944686465850532725784227730575581100074972967028198860291849432265174541639605136460137344259681694867720102458738106207899233309015233978598876215828682463116665663795349173812272236187822511441432587435919726854030391813245706516019159955589930760571279888022911230721079078188686120300593290852714468080492515070503317895331685642874497828675355853818947299011277680580550482045474281679969215953225274303373819713670421218574468751669665235409166719724604624271267288506475704872713429831432302687296739560067023384849058826466260777289269083194834540853881286383830317874960317296967051950771039629528300730124211501040150109933935665057215232288379555675933133548075789672046043637050182458197433777630490199655660081747089369089190162464913811882649630517201977735286731581476055041749757827403175285898219295343629574580405332682236326857372469398582261254390039242781628101311572176269177198247212396147365120163545577526470266253913593291149828497210830227770441183313353295145000107484291719632484137421539750668031106643521286854997034853497169222482621165384039143005600246763323967083777049179164110023478172575487422119112277725568348807080778654814701532907082760526053344249115380495504264422442529600155918295692221722903334257428642067154004269549284566035500883864714349814140080096657914545930861234843331087445999563165929807572626323802236419004055404740308546827193947018518003241465324627109815914794325762545606151303078508428396616490261006277795690824430782931937710533969879096294870515638524906204034338057054270248550444202217954557164303381475271514578295297231191358685090817707405960371532197276643088694249767737589288308520254957078611231970186777410109728307701495812598647602068523077470504251896721648354572628251050589279278404588950205905034082527044517482941156901502965238027373172859155193501085063003919417617895270355237278564850472422288810305789046472957748445863991586149087180068262911922992434354552284944061491420827146152757815931820604580099353638917359485985014381147486407233856552824067284101344314016253333751613935438856628820121769674246927248673319208800718417400941511796312921300983661801118925881095709395273826806032252936257561586215655418256146823236288797829067692031603027929093311975484468739391890741913554279137773971068527379786855104076476268047644260579083549612615146633982160248009534403158514358962057105497966535528135278056045925497378722869457167569671605542599136507840269368206609346377989901559341980720663312763938294899144413662378676464689485117529940400372267967176827175318441194081044178701120261155550453509841921687644957396925074077193405939710307307431509705720472852510886582298528031195408718480599154190623327500438907907117325890717010185860970729318254843376985606583840812028519850055653315988150606327494966884069296043542409787415231450200548061693111188710132614397981897205219935153026375451091232701639106054200306011628488321177592739066935842270228581516692820604286100225878146816826159618538400816357310967416973353406930135573943909844963285907439818338382822056137501571507528819887877427068077147060155918197357397327471436513197203197717072503586585004814350303662685455032743917112228484401189534551247862156935943160801714677272766448528553057249715840641140533919611713105071994603362307110835800747551287293494179304808311967785670378191239082846579937434907406553515526939544014911333270525415393529463342651862302479492007375451509355034340656478941245568231909659254903098659524546647916427295313097488156205991709320861907445046542782229183631426538601946449847817837980066873995978793583910539628534671615333512469436061917751307632481700442157905080044632782479180645674084715243204094289453595676018818618625745118752736845423886316843236597242912711146285410775823210961413332117781603464463479658389858750462991588009875971109694268156200834206717149964732953974223563425158618796425669781004629101334027494938079464194520521406435986423904281695569033933521846271749804626094670416873975871030384889024261988460451304187482431644859638453883423077541470264148120959927300331011425109604409874414331180572662352712577548553960621494308197054935159121800842847084280511716966836724014523032451202978042004561865553509572408978093600692993297720212739894339632068834129974480794424951122614542311567306991786037497580705408327120667340981370873397752117762108225667228086128794605743006120598718439831053100311026351853329024345227791084865147068683841150818223371778777384325611215194723797143347845097176760798781015291915894801418485585210668720400889866194844588049564267304698123974684480135116972539043359253273133105671212565128971941527535562937779171747218401687170011111996620819469466239141482683045617064171093528349226904678822142071110189322197984521576870358165659536121991401315142208957980580983060490099207631083709466176322717616846906985940429716548013273447112777536354727775054287093254425183567591207689548867242557498199014393480601341881871063352204438649537775174947289145073678069030160819726756201684904672201148268105132839410603827390269042265085685093488548934750866035662283649052635861718176883575175184178792680342838936421470627946242629174704299492068083066208780191452201582499101996626113893493178017365514294493015259925110995052637759157013488255861770186975768912842123246356597525789210257730553254947877953796340759265955996771624407394336434773400928353803500783423523742253571486457488786590082494370821083840833921629517058110545367844553989064715383723007840864217069277624573762075881730354419449830060670358124599649515334249130105587905371721808377964276167757706729904945654513342247318249906735105999584939471054101268089129052533087072426365256463071778567967626522222278291205023916773063539193769666975199569936983814705029460453078038438825956358422295806722398886843089532025252082742948604649542158457453480439151260608366375447114476874114285764006601597588944350130997880398729561343101423847203149485975480967328874626143909627034672452663434236681568433806879856433130484262811485220515957897763112133507094831095704646959603806779102745158643130377174285279676512497118579987769561520915563016097102448520318169471494914449520451035413489969274121922114267998510324984958365641226608098431851228470924630038508643435150394495218229943462559828259522554848505554374511742262374290236080131169540683878404133794683135263400762233024220213583043809320920744880729722443540336709678893596411108938848097369498625947977543597685080697167341963419623590094079867882320074942732442114273908735507385366946576941840136022086084686371691770452480664282034534320267724228218434346450443979610906290373769392525030236888475595312380468476971801013565592333931760460622623368582623834737686141452117479298997209832749468563579275587144877942313895012595463393707228172132147098874310894962501477572949930561049302773784800227069159669752670803783948116705471843817842817561403735308205912735431022471044297156972025943696922721571444943240100645620157492839022439931807979537645256675183975982116076839464321214278973620082071218306735348469122047611066597149232546647031760717430757482043146324759903377499843175743024437138687278729016792737265283292371861080522371815114321856156601415646886414242798851269282028296586077754654230879640494444925982382848138519623317933960456806442153149918332758863535879890507475156893956157078085660299165736793077994831515266136516593469236843370218977004239924952631038950475560793286453433534816778225102437393758396746989826549681501756933884710725970360403978293675226680896428226030468453939056760144524876047981155882458293129999739609464187003250525200952717695932500731829976555852260162989215762339668198104090292828781118823105903181156449339966025686478338988393196479913260122781952941047692181280057350183190320395694042443279305736502554323256387142518549984905694609027262762318111110211256717533966320623260330212088729913698158586454156808609310843131822520963018090231682098316038624095490830740775348803995571509047996177016016042973482853374520686222528107065479932061325289424214564838322379653663224623828685360011702204761769150461209581865584357662716422835459419468582132035548095267308622813611663700023993425825836252880990978712830127081421551882670022451917964805814530735159333737340971907467816509465298316211736610561562639257744936462181273840961129921895062215062756497031787011064293663005894866295845200770027707121056166175406705048125845670280037933015614832936195580495909393320815920695491035817307876103931108273800006676174068378515325197962276438539558432690466615248412481976868635372135418048916830638985329257865557162922884953088413306927374116763296471742811958463142070659083002943141441133243391980588046473628110721673801693597447822682949608342466307330623855426972645959446913319112704790380136465623119333861676612137426238643181785245485218823749596940971877835010013499257470756347258664711319948423492840505454867205206812438009845146116334566243816223173109232693534666512421024998320958549616586718079594141411290654558315761929071834125775437139420346508627177364348243410440386012704820854946434146825644672465934966562723165522710015468849871279665871877250232446992933560081666775657226696610068659675297794278219332729050861472806596261087679570697943249190028617577484546497099330677288519894771967993955429553759790158267925276969665018247543121771611231520700220164892430248754526558760833176945933719153308504412436079493187812411560928360151359618905590955451593198630723837773308532682640153049501780824949841085937657954631610471911324311964342325891745542841598658744496132885924963758791359173020803919841978777763771042234152232025368178625481451557128672818950293731603084438601832574741203325846366549733844948509965185565741340139937287656874640145202713234178044575041769557653052380004188858137997921230969945866622711036850210569408445125547666404406337235211197891650349705479623983186717588423683243947832039888284524448575006655312726186334688596724627049859551064572803092288270880795766643958875592900521977813804787971413389177428029627502573448704245470720643756795780483458989769040150133012141363249326471684990158130414326809464155523665028348456029572341762767162200717321538862059364691300983072790160005638894436823027330855963693913025903235931767231189933805326912646996348894360248175587483469482286566309313636846381065546850072604412133543339158248609203685453452003684026990208957716284918209342013261348364711120594419707658807535879436236771844989213117702460990760561926018396043626005873705846897899771343920462325950472358609375748804770564404861649086026543725885219761183152793169263668239103009805961109625417254897151791052620926970528876764256825602182402351791670003772884650111617979303346836061326570647097963781929073532851344666938667013177362426824725447667363682187972495884999660733677935801733359286239794860573970560622517640274321550050303637939686682432753095579058545251139526486017604373112195396530329630838691771573176910005062535846986762389439484246471005525308017178490603882134160610677230778268056069550875910102240358939239356311405561628730829537594731964280381266595801980890195284761877305036878259348015463666449098756402160458715612559240541345161287309270518350280075427394363755672793170758555163789697449750837602137338129100203677293599897366735206742681043103391797278910390438495986190531524361410160366825143978070792779939681529370391183628084038810750044412981084936028748825800119492843198006895304584949356771463670571143780948381436858027066178761275939682832224174450270647893929542090262313102895047702794149795662279725327727133497546345817454608748400548434317962224052780711596269793941392165413865498062822553672725882449886151309560387753363447415203199188190866415703856000630798239481401817629740235778277011641072830634139776819047237826275490350122241858633612494484089714146406213933923281193338747995829721515773610464541680147838247395152437884090835773465647177745133507961095322129432108154678118236051632717580222947457780792536859066475158456551085665151526037167444982636414447988060461900530993243692226224441266230802946472181253826422552461134667945469636944410744902116850453274865009522173801929260255953735843755898103812130068343593686239138752097547555085235675510331449228707940538641825518395271371207589174796740863057831921806106515789051369080591681774668128272207145824366592663267034452283752344565060934407932960477993769404136582640634417267272477350395474600825451988210756047940557286464319236356351629169558356436723722407903651484500090016365426544639086666779468826329719379312964854413735572934133510248833408171951751051735469530758263845540019830036553150484182311320939412365942839513475355759866468217832898291263632001722149688495721860914092960476485142076333381350051165200418909801269675152616331087577469240859533784402571434069635252384667630924549871276985043141620531392568960541694748764679850410556215427820759002403691574585624955723132005824270259407488943794900852072177548875813382935599990481471399792759181070859206008194316056583689974868255101347845101889895048792625971223229061226334653190614036998174536867273017347140393234456291668685507296778472352599197029633550224278941847177012453714313189236934868995821575249203396199009909770905035398621424404718297802194346648772668276233106049845955990179993896699526862078909190350966610527472517015740756849357639602709362312382615571994196128513115988064304915921045929375208944616908372944915441823431297766137442629263277245548449426428127620458420382107137845995996705032429087109478872661410514642401649799415284127725066453852583653329000271109837662431399351162961820924834105895510710567818680403981919183463007993653816547888796187695759646842284366572035921759558031125299096125159210416979746721876459512461630892710624694380256229681548695694207810668801640033579748685759960894377921606599089282703504930248213937512300437505035755372970676936904995598409411971291188376102540246242253929512408429696078112165126173800907903846972240274577576764216214851474999497255911499533446885011708976471826111993826263224940447475966358652149612725544101160123774806625958435488007397379994426936454975694536913257891506221312376355651108923998822236183506937538268135116990394135720082375539044702391011942665474538636574605326733659585534976861450888750424115280058387291831771358844494010624002295197673600219719312427652039539505479902789802560172995904502098650081902163058280703622663969551538591374929074485391360111824577414818910520012300666132748735724472302004024416442146704398924735083556792765082839812395892995864521171223939102094109034865129541282335575078948871125391398352480478230273666036314329531738590831842069191576417120196803387342531421017942003663458743842447637667551117112536014366771733402000064034421879031506980145696796572046026116925854664348971627273132873055719072753483690574264408705367565117630190000297948594868218760970562901075751781623463051855184703475962190674130222849727448909200768748609299257445134169722537603103448223297107704688867556147900369517202286890951972448031564152956591846246027720894486020060978161868989449903711638646455118999113343892630082336060215568586036882353463573776098661835988887695942320758745913195843278009418489268475999411123650038565267840541937644685311058707018852166019717532954824519290206069490025333049299476795997079794945337975612892355637460606182510885132587289387917530946541511520883051166180061630465997682972914215827697958674297227077384651806573502261383026489145278364469612235867994109274395231804692511479457998706477545787518089206171784017497032292078604544602824538118596021692603506371178975369346404505689472557897344427263857347870399312682700192007314048906309086985684815285845309513498526785821740911116463874044591100828367484135285092838441361941889087822909278389252612831575578387835558150030130619365316910397470264743901343181454741796149819272032804103417619948997772121670292957614583725749686409585818013302438914512649428873400654611815949470907099528798137998841472165883134449356257253320344690616866799169263391828111456124319912589194933472927935493493701910683324161226684072861004239433115499823287933897572761606431655069282644280336181661530587256017659329326414967489708450966488244531488412850487888903139308629244255742248402057467630792515662278782783012507363585456264431694025358129001775229067143279246167251952099194583225573861690083322796348196710393598044989393507195943219025662882756067460537016844891656078314135884181295624417249601156386321301291240932279865869374193708666633787777674515558695957768489718944449830594242942905756261993945898879215351991275630448563521242603226603549149183336298503719225160912338359256138378157851370317981787154160754302744198691000214966508415893227295221171309628917444248860220630545581991091932222589677064702116999577901029436670673059305573527723792440833812865348757747743720933919323094515043474486770877660488474703181729975104283607836494414016981544123016294494807289598065741637995258335484015790347330161230462990305726713223865204743486099541933842858113150708155417442396711646162995417720814605991905686483476977225726185069051856366865978499541324645487884789753145756848275510079857690990791261162383965398249589924520266212419330219338855634345594251808244654999016828810247152172645910574228874787407208334634995027289679462279339242298086796339361823636834262319442047457878857135770429411074236191878428693628897672848507722379304242094362588690185105760039018576230237391598158002283208685951057932738025866766806157490926323666043372462050434768213312340615326253803669403283222147576985342355638305276546038462511217294288578446216767396047533634083242536755345880746907136123110794816950230959364309749467764837698104835215568902153072004979395349451937029106223931849479898484807322480622288219115749926065409718907921283216310171786469700300407124554916673956763421972112034671701411018862274117202295737952883220126609902862579324158195180896202059701548569082742685864768147528280172412500079304776554407179045815953757936196448535573437500630184888184188453490826685132953196115311852502659604812521513999746027605291419959046641476144716545767887592697034408989674958173980651219787455766738725352078857652005120471232889491179262559021415522509675207157101775571044837858483622366571214781190135804337846820556718290298650105245362491795084671887455722703412928488668968164846545375839772071440310747792081458304745555551410104862493514015417669714918839541107806012778271444978823793589955260597263626071345230823264631559768604137764005578521845976709259845168667555237549131496790780945974119019704560458330475289608218116390218203268291739135590675742437993669182843145857411653594099770225819165004703366987399745605216295938951318514777728633617071425103763204262185708118715787013336115126644888669021769003307336413301619092084646147781268209650418119343987270491971534356244950057557732468377793114758444819505042937806967542103447835910886464236870578166109543019922800552896111921514240567975360511042548506128031826186123253354539353795590823886279159371094192274970445902832566117477329552956355798242222506483651738866848287135506986582577063790484641070179647447477645994007451589125828829402202929919185004449768994498320923562977262339954314205105117870566552364210378407896771108135441319882968129601438304504435935709036678993780774011500557486196246927772807494502615374030867931623104980652208112279390655120870027396483481118429067093402731355963386123764329907966517721080986848840087142314301225812980846347391972640867573278115929278044810688761616543790176474727332294827693717963220564218623952724507049406964940711554931716943870546759507442186876444028436864479712117421486372376915394785448577172102234306140472020539994195386900572778710244507787292610349116598236949005740442351436421499030106909802872334709875117597151911004216644997264477838411047525505165541691156488414848688528583982720431941522414798870395492142989500024207659229074094785068423342956314800991768572266785502953050357242435547694016240105720183790577300360295637951037278068404345412227423403994525394053339099274196037480025073676408032424421612633506164255192271817947370383213301518148952683347513291149758009103543283935264837936434739869020235936475498368710815816701969596205158560002134747289559557299879747879536476565773224843596623790746829399847792904704067583557087119853449065459096911399455709164146227681777226634856972748563057298624530856094393162126032303482167201412705614048680610378572589152076317553455728818226932708998506404322240556960426986583404397884795778572801423541665641209339480072049563288879368100911901948554609968392261856163933226025970868552491694507619238623570500032338290968575030674376724112053286099167108071657288065471227299185914647858896279688600167504020889295718409043364479583244725609280887669558459372807390354636125098509068042904756481663885461948103194497055451459980063957682210705263630282853779877316583767810309719480766005799266487843140640388819067334684975431237356394262597584773231241125125854072892620065780459917060592507344340454720347607141176963645432420622770497455977638522910625988923325828893888518984979301566996505437020249315379504711636266004858506893367793288094034129511730791742497934607197925188868975426321457867330172096018203652380868780566023276985406099052421788275054652939537063392958571461825830601441470033264901967766175059064468144622035241823589915256570908998476309257780751942784268869108525707140407857059525911336494365302274052603692442042476943492189673244215235390980141049819626279012085135163151167685828804032908004089610184083998792683388580368532959791874275548803113796400615173427319837824649556694340078755474665222146607892391433462130558984098199243910788013035810430963153414794528796186575424342960374240782520749096741313636499652034100772203529494299003780044414042650651279632352314414065834782958727752240629159547204816121786902236105129244851461599566379700951066609808032950928893177228354693767704426011518578293837849677951178985674853854125730766903025323116208832923553558078309430874234305871105473999509485185858434235841559553326893326198231218552990259487030927884857717159768264129424396486874984509247883201167778171111747998604678556855462053949791276763364363682542765089415057404796252921409858064815402756847688252895527475574343577345230899500912346690819790515284779103497939806885680452610833713307023936523640097353646107638173250624620517209499816743454285544635998271201005543228588044780158193206412004814696487895634502221746297551318480315248512417208503361602280818694101938299380061087493150065865676036642631107989427538282999495043266592941810248545537432042037612591206309892431812138674324089027503057323934207959747014032585790957105748987011359698421355556958815648570482028483862613780011544266166797021930639376723640741627402956098298404465784369066956056776121885162184571344062760098636200282063667644914122639405509947627145047084848158188457415858275356767952102736398524632632330988316508923902892141940529520402812809010474011841357037960221820286791198970386317012193246902740801840484869789926924102296106686785797156892567406794511301931589692499096361929412235293668369573973943839542728844099826330593985225293815607846246697534172634020828389013045925347390717459341039614002868380144785695665213032722599909343871654942854757017886031522725868913747478012661531540366062088201421313780881199023747681645880331641818577966161435169408319246019010172679307182109794584978413077492343492359413375661302903654036134557836981346495019503512708745990450221325746837889062116505098024767929555878183043688135915323380040682095583144249684046561021247523333538774146989284240580093591182366239333914044304179057286537486000493935528679768283311998795781449518441713250674133034652755068155582109719441222970326514006319714504414405177684146591960376348089474253300433695099480900307702289159436224194652616877506649900127042518525641350569866280811350990048203725292394467099398978578897427168675206657147033465510678806722446439360053168679401020594462563380901806972752589956355946032468024368426812772678892629368063169839112719266460512857759665621556547937899643102057377768341488923587157609997843083001606329540506395171992904985451020895504095734467270721507254889598745171325333780710252292191012352056127866835336371632783009721231726551567200067436508243393801920199580304112813290128388605253871516133065711994346726641552260536694792151238483420410531538237168449318714144521700590015518412868032864885768564944267498244300540487864167929108157187322832064511029384398271592783478812579583865787981908619599619651914528462858662320276168430126345725338596918871366249331991278919033554924044050681731674005815637574470663450728281504391407594455070793129963647966074127392144333398685273002633731184983624786552364364998821212276800386401909682088382297950737130844781683846220251602830156515698118354821646201976520262608712599146049160596077211567105146823203673788681157561747302748645463771050137564501081212134737008779276112780148507983991136865750396104636933472085715273277108709041354281130673208160135880256388541741187640060417223945084718011926409797689899182203731192889327805596832109373780702529930801012303652737952240629955471487764073013967100172793114093113339728947136782676578504724920273279933980377300416004592292330060687256229970682710887894357672885804206039385290440740783294351457497225637404727000175498675764934807272356563787699867254183593711436213980946581698341355523596602763613222939500530124622803700696320441751092061631724214669668605424369265311679573025634334219796667116062206081358437864300361470654740132250837365464958263432856529889836657798554282043321659571517298246288150563708288670410819332580178072293992506006638405084210174961315047513739831117391722899923167549751465830728072770873462359615798995663919718078780585676631926565464210920742468092379208727198701119441606503218166833665142236545912647991558688909197327267944224692764781084621467495722505268533412347907749891133304319550785492879739864696782152692385151979300003266729117370117685078518397109142283345964249134824556658388704513585902184456143013755722973137877587495365751735365037152661179522471070404218050308574669761962524631222853587262294543529836436473904193617885658733927630356515623896187197152527813195940285995288703026407715717250776872223134532100080941757613008462925694542627704139046173923298616595054948780628301678609377776030296970998907558858309578741841104870180499777264903060268612113724697613662464706769655974122561260778995609063483502177165223418667294185935037366674168403713445627453073794767063602771259817588781685969626630567932264806986546475315736962179209626359929431023479485383502872496034296180197102712161350878685209591228865089409679647564347192749859601551531639116503431359428573595624634528573175970923161430232153475535153743365068386962034359747002555265358254519940650904021487582018639883111824562152070409951202555942005468428832276475832140046020948073328335176691654315010947622131591040962589967803284732974805195813999752891857033546170896451152643735750492212797586138883833148343283764680792564991976126333166622079612118508339301449164499406643558876030303157680563807881112902926568580366156963068767956990874881792017294659103436325490393710580833595078491416990871743271722376955170003813896266777660099497663760422763274093603661580029867887018429943782037821484793550021513476056045814104060973730794649043099992064792466029199907885125825580290035811325184783838836445235727945896368249120294541220155427201040760012454932526678989138799948576354738505783297958787872756020040451149676587624236786498528443143780061213374626637775526451028676396508747738811658509234093372411537570382921638903440782072006102390656896553050573413533925771764524928716566927604207694602479645124950175190614978260971356378975088569219199906977427965017724179347543769330403159716982179576110980610577735664445704192956466969927672452077786248285940023540523844960372107583412696311287529043999183652073719602751870549069983914937392976172601904206462566663534304917010044897119225287094606379172983882188056588829018553696816629587873505843474620075253413227227575878795123621019067594320889104705196816919969245948485823176779832992231254140403997302968677236255490250487030788099893505005513595966182738437181106096259262386814749329434455516055411791041321232141052162072413795147131432563604026528384032453055656157319724193316597771865772159581822004063077137811949585463293641233149674344175431177967744125900173178806211223852746256616905864430157946502721487101419253971587999580751154416221826234239099316264690215047559368435055673308967855965150071319284962526636007127232495342370991407229990533879239188075425177176880765848724578367623345104103602558552907233986293780617185777832352739468337662818413601237431553127909871843001538496354799654445012565280322324782469946940109316523026198946051673999921212150646946711922710727732637677395273866989737601374229481014577979855361104972670008072438181615529676584071930984791473300062960386218388982841077667885398809915591013601222188755007223112365530924392320400008250213600995545750841160064083128134107129095833002931671263230203258680242338600994707374003628996853806424881823143777539412476309625195619927662636354779641426977708188971569604275291572924272186972894768080705496983017103737266749360828213631643908219541998776410360674143480566744090839549411548658134674791938420228835506186900759649249294910334171079536618563353116622592096207218047201005689208980657693505241024096984844131519859752086570131674230268502005933567111792096948756579610317152481749349287684542331087163167103675756409238424591204724438552962688111886344376639467621172923463681671032776203108696037732372931698875421120719043494654604647259860247086552217098130775741238413886354013288800493759540317179882392118075571882044098130650696809350642313303174003068860496233844035398858384573972022365812166684866962228073021320965762005935857838487834151779528367975811314132021796906452646260678947766397423367574443634739420987491801433686309124729952242569818177162629574220953377435550056109662997919719331145741462808980896278870801853598850798711273905822358935052670994750099964983931156252711039403786482936766378813885409307131193918853731593267376693401895897022930076750521717251170769850403783744766224481050788576366904818752187447256960133199828999014189273412610986075565140449550960256281391288850977965349425949366206796072650335644692748995103610343979309744160979306205623003839768097727009053322879790488916261462385733077905870697813275500455487361621670925130805449032496689234048824085158807473298304708933876459077806342589414834588122927963751906451161369428468874779591613244808327499180409192395459042529982917000718339949715004475237098573905972809577817792382268145066449862890955990178412728084129010028255145591672301262369426477810710524012361479614628857859943112747918901201042338054492446568943346313534456932041655688936019959628029236591500007971749938600413382930178788926251287993443650954666535164776890384194004381119446558693057155268474654591733915505499636781862734658334388147972302111148376245143173815060968460050954497087764524073239950604044846065221118958081276424671712146690897360210619387672716839941755049349258182272498922338466515936173675489561954611856181064388313378072481561244501892751993236181483195898980498335846745233295552371719084832586511562825882458424011173829381957554794328867588502304480298602737264164293757660930400493471934102209285147873897576901087153450553939469898464118050200824978168649925251413825922995421926772670323709519370034848828790867205597084386336422898414836335557589274408889473826947419554128884531754043408828445032343506135976096136398171383380060083634376557658455927346876486673944051986433636558880833406980757653017737804470964539926456582278904559908018073329052479977985400283333170479366388032490300361097140187917160556086823924794887399047140160662485094344804682944140662047652657349856490261366900206144339659866339701201173258935379802611689003538874067309197555967958286609927957840291663164200586754996819701233866440734060673702650979617613709948430269629115918473999712450211689862252310212123243770320295307554957336453467841876905975792292226094489087905837466594965619175842662229099284938795683495536264899401992681334015333543496106961304643550067514232272842016657028294186124838057692831035456467442526402245653319218206187494520443757286032307991117843931080751991253263821241599302367470710467857754259820303433859709957487185004810313825775194623527722550164415835065158205379081982653246864062280861641916276184972629305907898965132302111329797322630685513419843823682036575982503382495458592532914922291061031446887435787733275473255024764219947196247445146430709295647310470922981083792301479001158512441616211478974075686478349387520788603423767150840042996583844762537464465651808669522989516807803303431404886802730230903456825744811470338039385017028306137058489721789302885411983681727358002793962250452999013696958006179269080733483680583613196802404493796405190221820442200399059678739808945261038889833115719533449587135784352777196440128974937349718514024916617022147301050064043402048352737432395342985013774248948149593173134411489626922828721014795607879795504488919914308675267779336657800997787759143819385578164434858600406567569989318404723283847188167192032689211126799742214167379227549228176646755527544711118611677906522895349203555044661825679936441076076717313398134182910358254628748766646871862250051065503107455301836562003543208874837742184603460555352835417932295501472231139707819253893986121431057694562478259140580970628085983537521425714178564448609939232515153315787764966693711578654549929882889786152186790896251345964543750807059317701283901166454193899343290202602315680086422721621151227063305680395947731434604893648554830449654025159332594486512640471239495961590923985766868045827555196148203837770304569068690590026916604466044242812968683683178122883122659624567049935488499237584913327925765645264041562139674212478787753186840378463281376439659304110966779868189276012655319985340922605462336714978724301473766760442941827617387944881466926639156431965811008078575783371262427867462470335138838215897429773778669034643026764905568131796662843031470520272650638913632206919528949492252206233357236185211869740332887949070939368003000153277906422327733604548605429308933919491503112004589906300697464864464769753402404514689784453692202256579968544641013502295641815003923998284516515199584632039223049425457710786635132364605074377585241453019293394761938497632077250947481353321066873275042016441903688548329665290559370536075848813514830214024493421699875268442306596914040424053075606377654912186366877083083177914602063610628625309201575315969146233120356644967406149255219791031016243072062076999856038200227336794551510125819411351719200452677275402464165029829401401967731243152525928753682442948635373099818241425851226932950066993927757183551811813470060500207001353128210154178674616184512089077968031716893526849889510828779006288129884065724707988194184096801368611670196618556779048987012394790971433363506215628055519837956058506616964664842493573739459339577515817033851569473072251975704338815914056770021504788915625348302701546383721676073404847763549672386641502638682505728496901575552950727939553615741121539647388923935107145987824117976052639096982039718360349928450598287856639860108699209819187041819852669230599687864764976773278166966377944166029057399958371726520182602436280218790128871317520067669408655963277923183171574900670350927746428225702398201240958487215735557108456197161761300955678325110803009598377610837261026169538481140034000970946690184222028070729806252616533617383318358637036024843226110135161520466829257948515863939462465995886887827076448124060374287970208013913371330249479390007036880249588952603760199024693641204261787079055901357202721658206412810247114045952223516668814454293935702775297092337935385622453189276830049769855401033147431881018905797634314521502853251133242438704437054599089705203571993024210830415814075053078738692742829434796618015241793166483784694321143327577109426884283989873435147327936740034971508965490481061368433655838490059172656990302003380836459964178483156234257486406044986325047494816744878291244960682944649873122255603951763576700245265758900730787737460413585859948403972938872996828734598515912899011635069996841306746806950359284053985614727536733353557976837716310718348066592111894883780203101515031462476553696840714031755161555408320297080636751475517654764525386063304591244986004313295990624265835893499110084076142573131024855214054707817934423708168739777657203789897684949385099846137370463975403270633452039373424273143692593433035272960632832335927955627566552634820173676960053200917896650018896553686252874490689053547013271904918557929546302197196330826764346016707795904292242004223469016331970990918661045520978087030435755005743643964101965881029670165147709392496484286439580754570462870511357544150503547551390745239595801962886193382184343126820796245460715983244784550659932773749511796477707313521603265936115420752743310890075349643236820008881788168034286249777151881157646137337166234882264138991083656772259116535633842137056474209295612373076651732224110934518075393063220954418100628285679811388412285896733634261204463091820046541663805503141658977316625042689333485450804205045958953040954947197018113006524934406566029995210578857830210971285765608451407817324189442106626689597397684195369877279494182602713083815935581025285267396176669036736052062597102793727590001999982778115911208531720120815272182121514890675253411918849427486772928578911869084270265555610417712680838342208088698894917571826518085365684313971825920272802633561005762121406236054950029542080888768120275774794696346844982843532761670218717351643312595322860746727287907241245277133112001962820565228347046636799158411880881153774025533007458356378874755309007594352730620194206995191121289205864151328984777423912731401019396254595351805700269868868305360464135589966109743352211202428077595548506991576694873368044393970020267871097079784181995371908729989660113185539354552287203436177100562522855567786440245290493797269510910993787524406489756696283791238066413518832905654702721570949030618736954386426736637501272939016139402009474179720420774877369307663952139129237385170756673208308665724455155061065697557603377954281050471630419431658223126955578017152354411957601888757809632137115935564529600176493765726325608006858904492773865642812781567537695111853769246612673581714122388136478937935127099036533287461331459848994024728781926436732324148473933538631597218584872003977374384696019357659885066941707700632279953791778917403178021514095220337507592093198799086133463512729460563028547407196156237521398086322156009246931621834228392428713167683366926718886474596913378611880639137092108456223261358989778750089778755595002424797721868140413732414680952718728078483685978467720331823388077843130121262075282601431917042907024127985225179888074535059459552471922842845220650940463922503665610868726527947752912503502476023565863764778419929921984578560012034868783422344462465655463361305768087230396076549267764660355558968859720569222949403449106215072411853177856209534876283993275536159101496330108321714198404247093989535108112007290968523963188562650523077331947354138954604172208812062315947539923210274506640331458255481784336736587775151086654049847585708506327501834660785244032608821215519466406856013555971364728876055168464235145081713305773547661712396393604992449188740897474509720458863541455031495694474075266363699621241218767170575653862393125701236263490788318090712109927594036059637108851180821877150070884329153105071487640808638804285780741210139233409751175859733867332914732287051230441836055951180330701711315990495429826405210190805011574372655736405833562654523056016667611507550757749542009310771089595920633792267302854167058421787331224157190463437361734939506894655920406143126948117223540059131466564482111484443637146717516906194668833044092044067343588339174038908248205796471897815087243490101444602380649876095598460123656041203684213849215702083626296074557251940039312106366874200563224714381872638073693731622157971821921552996232298609979116747945885414464188559021274217870656905970981742331094118878386196369319309060426554125324429731337645317765107976725407521952555355757651461116461612232034583973280098022923683876167967951618520143491046592576240278178302895334032868525668416233627739105980724815675282637825496078928310850166328304038311693377610734112264976302572051159217326617920869324779395753611728371885467997828417202324369046505483747744120927466727708452446771626752018365577135209349974947824199573331956058860556838931640534296563875522281602220192658273578222107207092483026817318696697749832331618573958613704278468131529068190323132624494848814135542001335481817249229738396655089168554772177297262778327527946935986662571329293900518162983787887616967850194724838230579362739325164692613691923926494952219846796343455355582676701932882521759198682226235194834265837931656180418616884948965118098656548599934681902752107614405795541350059898625700971647742968254992848882989685963877924563639644081349090659915198693345835511086858781645108628050565603337664573692436140341038381835591638486069232245163819303341600856665620005042292807741934699550703727644098230394344616220912896684955139121114888344980602256013577767100963667426559922473379761849088704826698400444654736887334146839609317095743812629186445499881008369548305671732231875326116988137060914148415742336093525665516331420448198732430429619494251240855490557448646121641556693918858064300323766453681482448772920887211086149742324319090078165871903115499903067808736734158923772087387710363325547846144935741621254582785138736860751515240660322960218893497513510291900489665538035675404143641460251527134589409231746470533139914749218598551945456980814526184909282574417742313244872656431803907397079753364674208555040349147748530558479808490826543827465923352539907624783358917859872642856053223899030419854753218913305682653842686912241711533771113124194934463651314531057197478255063605063730676777829706897322442084795008962225011928503676677779284013630470251235979070548882141559709764296511997370406574516251021443547764804267346655411963394040747822122173642476794939316497653919770622494661211894880434651869264602850925604509630685498822409148497422701773574425611653402765227606346940143559888466171334153559031214600909233822008218985225689808696949733195987558486326227066343306592889419517375522850525722878283716381336820728579951693849139763774349531249932572900455472343971787091190439851431957962118400359525164274829700513866723368138039920938111551133183835758593142572597792639600429870660533629770923581018669729913587137687143212114953795144634425610555266144790036836567546912764914770604611133124277887628537993977122637244419229924866995871050477891197799714355206574813131293746471316231664782008157357247615353278210296280426681483545102741855146780432050373719429346811158630712671212419914532619257989786553588151772401960351869678755782699509235504246401522246990232977851172423383860920853270378757565248275621795291503389493849734760727784366126856126025079032488472326585510237602516977417356477689905696277315680030537295424213497206174333105193868708106498975975689483553696027392021546696224875002120055166731944532965978398509283284431710560550058985347537558473692297839348600074415927168955587564694220430064395131556098853939657859126812023402912670484418936990861492933522469100542848255185294938458042249568742377103017788122389254539679190945068091425539111643528878803233839526195215001663743664492748340669723068787113333416498343203806892788035064330988445426362520368057786878657455210043593033130612143258744829170897532567380136218131954674409985954560074121398476217741441572368906725964646548861177254511156087321146295753980724681877195399658979399180582048522692271514994158289575585947872081803595831734915188397631310767852692875572989262843602889472037547732546413959569789629693080110767971279093623179060555878328733287670720106957228575556595014246471955033786569532861420944839251192842128864880103173618656899458733942797721663022500297170724527522268322108099422313734208854563743221104083525346091779211432728495952846547377224895250989330372418961300986280281430058775914918822643824802471822564026582597435367550726229895186095128983561876020601644238013268693959768021886621911906252586050464129723503587120938594037142671504390316291755526175388365304029040696891189933799076205489112760233934215234838137048411733061837742339037813554494323631746595544591841419978047962597846956192166882363207354330744149197109633311884242701560184107081628624588798582561232898877638872412255296333611361694477734504974335134697990261578706443592933814094006289556042611279928465044856668081348212815759910623703013103124060435176623239634592658292967247203793672434787367464476754106772245924113001745429214920500884676846081238260965689680242753220674964270998554746990058745498326962496043636568682634829585132399327747088348846688231217623410564978690067124262074357281341348403332269156500685280607067247086655643461244415045533611243418419857635156971857248584904046389118323969590291606953611249473286800330602394578700803768254257241882831649520022463820887228394943439556000639287582445571666540601641230521907599531688679826705834109811658229902059217533319757228875678140823463605473148500951773170728552287699363616958863131735167514315979647427781453359487787791192321998146425310531532317983072620944493101374904215829504309144015516594102356292710663613269794845135716232296265992312166240027478765541294169716384777059717248087587788350424360679347950843403647239466091092781726881657145872825458486818696762215832231195892455802435496557671372556670424724824626844580076890552049631204475570915690182889732945583022074983818404411750707552057639605853493602261037901590219088357504651567322442043472618343651478327200217049749043828984222767476559309293494168900905722552063436576038920758816223224300618910662616609837045333506211336431441215487777273174341867655974107661807464040047619327458260638054217709280014391534138927015500459902168392232664181089495149323646758064179245772627632067162834046447402431422261703638125532232343773898198576808765524228111143071280166257458282637585566726692838239593764454257473496514013557969213981958216353015686241383053063580793625850989173600147876891274696660522859746054996726255739934853691119749258241187115495171175848319788036869400321483496995356730888400564781158917103944881916030325902710709594079508866809513377445513113126658515220276753621163408544563983621952534266750246276918184614856657752292271425396299260271604386226836110577852567013059388384925375310706683260299152593998936763429237379789320014638891528125910396290763755312756059604558851325030017495525273223367644247138043519532632986237436293293898298272497637856889870319609314276168351534639042085529952152990177603918388719598946285689920983592104867302650129766381610597296863808729997981751852767679192149766342880970700387021912006332242139194664249352630827187293165360502312864342444458731307209452122093681697568345918797656147722054267674100091061752269896792588606328832517562611847465849909685182032325061563588911338284378510633644551491430567552273644518803426326484777258377900433506804544054440815139929047766636308132633468231874696380424938293378973471682245647728340564828874629568874500462079905052437171538567504199493974243297896012584983308795793339198432987718179457546011582392264130660650617305970738787201943969800292725413817820812131584560215266612130230534479263511944521977023797855126462632206326239990146538632266817792674546816479560386314724234762167277240919065685713542888582262473076908896171184586909220179736844197694522952163396427975458048460487204382522519628499091048607917732185562347991029310521375219382229738302698687716818929175093848850214987296230559312305514002129830325914460109079250341989843962183898487194703190852847920208279789244624942231420607749461423652462622411190368264565052706126207852434745053184943964744168513255135777271085529756189252751125876114291432228819437068885854910941102832175373460868076449091280822575776085611889129847409839041535447822644455778001308502013193790093700971094669052800490381028539675014209306333636581860891205981825139195343967462017086172410556636222710483504918935669939910422886609987541673365389210610872878784553940832921954281004025888904635319771971622514704016972553998928086009629573116379925943167368859817883534601228823736564787981162130863550128379922314416883593936589515904649953387153913018607127922325086429903147137325871118391574675039715626563812822248788628484857637323185575196092835542644058841891789848959439585730674790809943213754775560662151877994014494192679967038102246179018134666701478264499094509940550516414558836022999626833233200093167212313549160820923437982600432862445263121115179439546974974562279302052783599119953433927467158827898443704648506539111971845210637819643329351227494500844019116208857329956057354039779355649471492604898768365383855149304723480767666239378680774607046652901503606126835229460554674101937004784805125886357250285043018588126448554007732372899691217457750311743476486685122966630069268458402685429066705507531720655580812900889228160575510381472703207924466844073432689053341971582919266551432404405680413953589581163029305859012300364681742792788820272040211321553940156657587641389832367356478915889973712663472152559999318176737639998206027515396253901157321997122670361789991063905923614271000573370460979710505012606875323665599646448552141597696035358162492832346146848801003749849637124564410361151213954694364991732656828490507614941637190115756920486918822583157941284259184733042279030737087633176413746235622485854949730160293331736618546944702086849698501651835847578305849505817346170016776296216371327341309817301458200167281059875017473494185670187689634044227389767153250958815268209844010417357056329340465571720357291854497498443011184473890798232044585615150697112478681461750228990413898517492003819654570332678087351920695568462478743381100292367518559144481063517988232037914758658730222412016031534596644627285202119048015600196614988680883721149808702576345849489683540336216395101474399299432439471890759617314972125028206729235102015651168906754811751242355436019505188090757942969442561263137076580071659636073779492476722251947921481068255417697508581152001870980349788037308041106368509468373142329198396649727094798830840793683037699792307515985243655410383191301497493600180426139459471127487845385247437789160355922160301871245000282917233600072713236245708762796614910399258682917932539590825213802545161169126029427031997897993044416013059282442726143817645068249141401542067078115385608109682709418076941015071506595077641586667280308551263270897441570355326160490356988728814533667542556644978180339312370979080499788448175828666609566379637286984454097711187786537851438373889470623727647557338017950489880780503629941989599591877330907766937974139120197202640658177422788282001206198602511314018605661242286566976853884428395449575525348389232053128868789836666687115698231811787223625036233408958384424758615535740077379074844589778681829660224243575201127156865022136679116120407047154517072249459489209720817979066106830202824837382624812792433149077525129137575317298658902069084501909173238915688750974658682850190671286755486039593215233519170211698377192587379604777797899084246824644373320805056890211918164265325639871340768593343761250005705292826887804957082654519324062866624047971479317750015590021175207863450654053993109063475113636655651900355179391263263949205768445800255645449532561820058881078867527159788207497436524461472289413280942100476233592578919903004150032856953537306069301078374454309428654610399542766520687458681189188306988098824114789838347560326834975841282745628219912628077870861602082700789848726008588630500142858814873667800833800642972674700929125416384604001880346973254010680518860737438312174677037946621236411949498861690419608982491417353205624239995413508104510213160102458495050953135144790810479391736475159702382773854477841472044321927040198755022514268023351918174711093163063191831059630893526467936231540168034762003231527964197291173900088288906501912970959530411969263350938784108001328267897646208622205338307339067489209269450000604143215583003106482956740537980273990364287545665042004039539566634076427094828492967673955744975247529100179547215826125788778158752894051880876795599005948339581046771486622837259109503848227715032772387409396731740917944351176662228985010707348558699349136059334985984275686677177033134025329389629019164918006234451326092077181578978844147461848824447533773120258175055501199857001785275388437058149140325915887992131009133203892805587547189419661733646387088625499917362423764585489729500536364173531903698475846747927958917398484981667000262828088196632222560253546030325010057548067111499776094141141065120238833413987314470746561038608198983681881174875104824759373702092466194703585351691982093525250057187242801958258676893121940364020835586957886286765826373519605058550401141532205455680704046766568562065392402988452915370076518058609557970571469341398455479272059862470885339535892987402058648683075414602864492430054521005334629351327663433108961762757276401830191743673257307284171027491088254875559065156384052931471477873360186428547700548439599429477218304107160209219936061738623386438945415525432965803287490764502886622394236647582048968524230329884750688492506298490632962714452613931702781701807211595188244715673941105443127887016516840559690394556939529102874824619394158714862879517006697765765342803016827226722492753218456001766201080940755281939307725144464669872840846118088160777518010323535338226847700760517582645304976236614942219027703333581430778358671845739911655777643055976220400432968726031380635990824271445343621672994180140067220055577713254784964260482675112130211215690913161615933809835797183104119468548340721038604582979985318022206836465111146436966828488086563098744712633354979230028007161276955401701619137054997362816386722213100209502707581847526385323383014321594449177174990219787171560512462712797921803826875043631927398250959430842142127895729509324849103486172412222607075217337890654937654561502596543266773382161482975726912627266005459780761539188964279645886405546194502137260429050324084980798796116168195262402440642767702608439852299245599008223431500025987484102668918059981907510920868966771243539156681089765342468249760956340335396685745765737294802828042899049173516744088932649723403009201011078460743943649938452059912652491903490785900945126096164991968926898100514040329181074306018316919087202444438848940377092243996049497687567294670436512493487265194378383200003155916663611342306107037426462350631143235215410586833467373701****************************
216181891657230116555414432805210090832882822423836739153829312475479087477264953745706094782844504434229020834608100757292216662209881113930788066060007199621583388587441511949483188047315647969943347731384975661722349835173584582298941713565487868335717088248229503159008731621855936461930119573721844610900095821070344436573279818729610086562284717841950771661887916932782926961049632355302947650602116265419164728103951778262013338008662204147952270960761095453186867788832640549576653925345615529133340894472207364455888103070296102655204205719169198397804015722869750125231489199949374432530029116695886638643546070676678617768973909064589896118976045563230506103022738951319023407513963134039908890061689505300282734008253318915536182793086911461163992761592219944459161816257853139497834841889061095781117563984736093693179350150964030345117579816637591704704594447670526113465107513199660943733244293018791976213630224475187519304275356427659654905557543416986384847377781418409969088034736001963363014773396771024675307148735723159251147863433366394120221339200213403019242652584946161859509159585486077777253291552148947570630459001283601772658511307512876435318761767629138650405211312387667169699616434093063530418829231278783130357753172460224803406100925667857788140100348615582485885035148229107424228174683165871965471108149288618197808881423144096569897456549305967112457957918355618259029135662816369176121293009732502061625373116665694118725168850326089431847413886326676130698609489176325974062022455957559829097461068612048618977723515913312073077524513304725947269016242426289624876500563636522124015222332309540346194792436020174056359259062726346190073802171445677626034401142055336174119335833823596881765968181865424167066981338462098926053199907165869023168590253449544246955753613157210529771113075262385069858176409481977664556647181197290573273185034784588368227610432874378161901779769252775517238024837461790139588797936037989897366160498083296451212824253946438256649800697928319551978024331635445784143910676427567119617603017853412932273136526481206533166610564151727586424258824244716304562478245358332431379916754823043085747623842007401715164914201970694181576203115322646543469871185221565937959446831424236150542133531781523283456404298611000921702050867528463160584741968251569667386847913949528996180223068317450291437370210375142152769579039106023864862641835380577874263480177629166992592128600649149301010297398340974859393786547783109860905406182229621390190833947710753075612239195074424112968763741493536609873681593522758296597299767259451827196138021315793652777703285879368471269362830941321725721271716710146075838889166302365385707310043352171915967503164331304310545126963914866586304892659620621431672459450961412161640881139390767044049945365099292515904981267664795201659242222377414595246099567525225081679436134254115063680532276680046297165313286170734012496142297037759083958884048337599408031217948695471853214796439896166634642662249576454646769631826141100103858923139582583373396482457148567243134259602602512768459390013731297989757044467122856887130323982138357180913351632441834977561148201720811500982076837370563239253366997121922312779142674591146034376857875730492789683550834092017534800949189772914909121282517612106925054115308594694114376883875694535019504244022286458753889882632563954769000353527848315125952861651935561628079351290727322932140241460338959398043166963674635378012145827281710611219885490823214099543271114613334184843423089906881455531431311042227149946493765770766638160845273314499748237925457791634209702352435061626655061972023957652319710792254112931345239586498180397000851463052217322136990701244574596551490937598335385681987642520520729277251139348669330460731352515900381785355260671806984524352166353633537745215366314196145322112714356620602111353647583457361598015350174057221678663245740212712787158217648836088688044201624599678745084445577783674412312607495140441038379309288113712492665073641262315833030141142256177061382783431932721885919475339895219577265585940967193013726601132013065028063971888311293616442273755325647318278574197326008769916436434031222907973400846851656536216055562033895880969457378087549010469798295393375538463522453492562934487255447520327316548262805246810751817447043391984019863832640297503361318735872196755389666570442854159494244704748864035049680869918846143788328139789016942299398458140544053387333405586199280190809227364574131648272124282233639358046183140436892823467190253727487297554072606137962519839179060617053665120941363972417308669661830995284691879331601657273792355691498107888335392761779587231684977248570822560061504916901507134531246291371504906990385779700666791471218659627044444831103223335043084407561027459649637580850392905909556191005750351273810448962165064189040134632365817490709985254034440170018524189935229350131626912948730141065517512537786599527837005850328414174141190598633479581463149390528626780104779034371939820377443390528924330416410686681625003161385304784261235672724948805349377482784191441884447028008293539636287117544254913338038556117884316081933411703803040669388799979992124658329655642292260589423599889387677712904961682786088331233196529876817328899116037707864988248740963866224641466530926956737389739797578134077099592053601157957863848371171886443204027279172769102528256241744914154296689792147998334132375586964243588804105388410114917563491913490870663270526543374670937620356953498158216219540484282277172940915863810388708342052064369765261912002322227788490628980088776275722089902498550258952165501587955316907525028309653903964506269816159986765996199907744176457852005097412802776066687038412581754200057969303799674749482707127451088266609602073983471308847505096207617214905358881060531154749713478497311847095496391737837480489382077115480125395384708789276120608046329581041415505573545148993662616473712189429206894078352401201501086817229385135993687075366760841559745741700945951090929285469669153257784507855913308715067315871215762265931955809254265322697073563540180447274990531449803677614674318832619093807961315631379746907502850450304116760570358352591932618005103956564142647266583165461244308819953696956893876821531719572788561525668239952724486633714855036811819319384881819257570243295190968687761281529554617906839542183776110140242998690973534192887657092182967782089845445883280197880115489410650550597858109214468222495819680231439228492688181543179751952987778100046705890932919082934988696075050085236454975297157766711073501017648193256064761196350988683523259743651534887182834263637566882720728983855781463480917653211905838114828231451777447336692116236969223552750727132518782859421098998909454194123757533785799055987295543664909897251426729796489243254639210023352515489732109651497720610585511146397846556733386375919459117767255075757072672239530055111780583887651666586928915163222771661588202996931170882583992159139825778264299892748381134179943675350088832177140722792247588771091194610251242061963159143363755925893935059563810311353767174176314617112431401458228602741601195874584765291309662761660600860574523737303935337031707393359331163924666876563774890564157278977768095651136178494139637652923069968337142925936510875930909610624820777131193291110535967388998459720819231105141758346626712064513003544490925658500109317583449969859204876666089854454289877411258994805171604240116421721393816234856848669287569055876682871571277899185906250740831018326005736938412255531760303783149066172992639641496625725492165795852004929701570067342639157646224684540938435113862962354909436670724190902718753433515902655251397283587272926239085504641045640329829442907836664820924353592517465018651514576755805502420418556713763153469608287920872216220955994976342149785952664347400003913773015564175938906941534270617458044027540925678830602660390962845837628482966503772836928025157731952600494708632426451573200685832080575670252124935800397708172799205468605522382177638652357786592894733210148702480327403530619535893548697711042933224029962008266728925747627377245090646473088762980021023145575036986765632622843458325952432773091000326195453484265913444845352562802469109730612386822659836331756321929193247706719153068721985632704509063612888992560372376486031210755504463370984416949919589260656730084155229112149358842754300565687552674603559103214212608885070913669509992707850699243895891826814495830733199581774234808651970004925364243639695496668777970965734460732199032756198000052509220087499663015252433609647645262364281926440866963810879452682610984093024549134674154011430380348910909008513041006550117552271486477910212687863778584031488403783247743788631967992872720112178448985925447433215050501336543844718666532710574369762030293596551275846293689746638830549046373427930743089302933402920433812935232452793554091994090397586644742762378575541213922062261652943795265444647751335670890175887399646248613576535986214240240109726394538600998894729613202930284423184974377677751591971613943816750961421449950479456378523604105583699995722327368121541559523506176109545148458608401860156706661902118412301279880692789948276504725825333471800942220461226600136510526952380040209558663782027007584452963526315860774518332902724742235102544248414169452350367774340353559938923991748306894106567235212300526453802718573722199522283338217103547432977608774756258868057904810180861177130798406788206549724522396635289179645396199540682067936074016696308021952935802682605233542910734185642913642886709433795618834967410881786468991588314000217518903973157282113503018848411394006189703219447954318753524502883363998578966954075119413507359513731124799894230050693500048242275039668248969466129948411543733665325608484481921770483106130037189643221840399499344143705537202127213821145192547650076314690727963091743727004978898269531802633011009393630311831502913277773145090855395581309366436289768787199515031454150160010716827039620642941885360567853226363435128938976348919275605658645991876010901982802068326737798710861370561527090297906128939688055844195279249775209146252114217443450619101529137601782116912826733461776588494304819286195122068002995912030267438882813068720875901157139900501439634568793582507958035902891915324465847429841766124651077313859086234849154310448276637357433751871084173218221592940386206439860761253904225549330924482497366495066746054656598671752813694007887155709276257596228175196392312392533185990308652645066198911575130301269635798857019771281568817809834450893678101815976084086668780820377728118910644313403182740511722656585962598756583090809098712983784022852699452691767067915837360685076330109279168176485757319098140626155824517136021634070028979055554846611637730327507035264430452883625605245676377964427618983177299019853647361265377729975026270969993177341256377812687893439600621841141362677479328950548859693378806557251370245753366749029837088685045175022333247981466645307604908460233962387709808494175589816203280012974496992752289395305237827591377578269937743972060703761537175385762555155033808220943789299071359667238637305692038142968480279576813960411075380215825369412677404669400825664007998169708260065055429734468506714867302836667337401601940303563704517245632827951455043225292114945764086380004080738491516697686001966807517629917608259250729328395436075751360941070611678110804084385668795516277958654977837401159549886312797042316437813707379015239420949593069224537667975881671482542950713659770096784785232527341446128082706718646585783164353897301039510716297941417337026435722674241834881193219746541052801699103203665384329208327893240712048144855126458597088587161235934406321711414372277579358652280819942253766062150117773180372796974977212828190499269244515380740347391989497781232205291323006721236228491112415975656469992361338988582145940168611639968258210116321533718323006388631865665192830366856292649520693640705079583530293719898405271390189216948583608904132802270942012710943257399694574803825334841546789793191256783639905196573803788870254301986682896926874484621412234195553581256424919568772388767672060816278052401582480012449688290808456045633400217707752103433291833978146395874105886920861643583613155082585278541872262430506716712559586829733982934313766853258159554560892500116197854331203084637362250122712914119435556864174578701247256291956992355944128262042252926072384853205124259027507208063324403401557938511204160813512896999307590042363834785922052568484556619921177490994521643871775967380328795610256149388308603964322598838638286009928131364605740560478363633421298494739085418426854825691874978475594398011726671085031445497461856121105040907445874961939357827528524842293090996551857544656515825200568612733332097815676806437318940330587307058574273254714444805942031626266598188364243503802854955832901164982725726067603165121228099690561892101278251994255639983865867874957652051380898448289934010461828006809463186206347190866254258168109404804531797744833261218946454711119145383002043657285721598260080798070016252335198240172748204738509267116852388880435660820083714740019142346347846965542584497173874592106714847964581689938191219093953863704531491411702693011550084996252325475095334971491864599762021775450237279266251986179804566853761630965086917135979276927957899131437380069222657645593170900879634566413866352227043127272278134944269327520595623752238140447850616067818428818664192900052747358782396458186587919908779468429744373225287311862070073676527316293304912381713740247453395284409452163044756673729752099720290850147235812774769685702855784723028838522652447471921409894576588402303595257953312714790124048572962089408799850048902626143204953527518068209432179927598845365555626233608865628759908188071804696367289737234199612368919723380626871334927374461388014404672943843476744105066792464786480743791559676566528191065613998858169134760249445719599082152976298937689529531804868385865087188238866594021775191089196683475727290871690704437798520148784001207327373082284720640461008497827198752626364053094453864548020676579138705059784005805059887885418352706389693278274277605455454935928216242013956943545373599939706382427467868011407041123002864696432611189661161710113347790073909489599331164994721494423014778874665999674843362060045990054035261413066522671774824479444163837700198780892296341617027492995297589688185262463960447054699822970739613864136944040274455481365484823922902731442981548615204013409738813093983564471882824997889477612747316180583330598782789107118898684346012765942296750498399866427377114710810480074311862520120414564185876220383178788021538607078819076853271847634174199045513161647955750116473646659388683193916989933864400351352784864307228217822885184194776365830708934495705937620235844750136347252505690301144134310942145822969939124147744345487988606508308864494439316160672613105092349401066798635411781508630242015689861076564068180741069070889584924399470649045654555261125279969127909562268330396691904702101187672127684224616532715641389614082800531839614582458308018189582323405912101015436116080523730271778136761059041172756910874033782148990513584017810191537947820963499847479586081679257065363814955609143846385697515181217268674019843907751017654236944075084998790698499942067449855750383244953295532392954370990179412717869448713760871187626199972423077758965488112090414295407660694558213782150062940722954933683200307231311990255626756160729914054087605561532976670432215311429754524146096740158997698957406621916088399528644606446331002832594043276458006955118636697301481166972912377118575156907182031402162679361990042711344411444765996444728237893072175007685258556327048460483542471887402938244926182657306639883122293786513942881068528585501146962394782585309365563945377178413044074810265811887507738081127760688954484382510543216420021997711778460220620788797887034098856229736696850294571497002640369802470871413252604334115977814715536138358570186224477551204725918907176224014246925217741423964585086639484129259521869276201385645964149924625361482964398191655203308970014713946834622495897014591315473645440111204045894779925817411889408426555869455769286586070744226563263939823934799826932367658314896158681253917524373852816144189524835003577737347746505102098769075922986218561209156031916930123730022411835181742060539269147605927474242149246509042168403015955274207827181155236302701674114321923295966262191471617410482303221396717991884267412754169749202825951075840969059613789125579767993030973594165573933591671371285982322739010632047854890714581980979949589198411553238466652373645274995135402226088285072864833901495458931863306470004074510634218524972808855523974234219512229820999332665486231406925137069800580997971834881174866097450893912435106406297293053416771149718765728825907561175826103935561842392540480413889274135509124699048239460405192300146490466184740867146650123675441689987365318297255172832149341927087821594109818759378334510291705668784001178897980023007011897527481242635487654953298235772295345271276341183702518786952828817888800133381802438540106860181620957888669875166162846253506563368552420359752988780805523974308719776804080171922182886629843595169685816130772199896106912948658005774035704937695440852615586359900594949703925607024028232342529298759739007140882973024731934066163166092588332348311539187686731407246896160664446842059090460824507482292402388611262542587876179504722724944045291929488591203306507217367788367235651153666220855115962851159710990187589131262230473736390787757025740687249105789821759518399480041847169377867506527307287133628160135040770308521359212977647668400245046282587888569866255765952818129193857862000634145248894112374067580947846623203625058208779142198902101829603556684335590067620372095445371517753615357098708484442514117422810912655122611662104807745756045163661770213288018657318937570932370001903567239561833254719851247506834539340976555529377761881861996571936927549200073526097553826446479594877079291363470103895350410429703412329412919174569589919170201335551979457159706619834349636356387831957079555765715005604328454482896438846419917625084743570325976216140329067647195834871685766650081587429289564656925568314908148573667853952374723390335661131323722907174017504577802319916439032097068919359223595643022018390366323484214391493079685199735957134228001762055093160285030072232279747936627387087678426289096969034834291659411153071239212413760523967319223574490855942521499548823949715283890786972536362865769055034432588250694813343347951031580950283480480109663366361443301254237586066876963329083782521534118016854473063774316231543155139676893819879786541862489465131337652580747155533151971647035590735789728661409103342270889933063600386710139290232356487379795566108111232092056834537239747487712255363796966337944778864819939232022634926606292247581307475807589322098063615395219596478904687533272272102167444973623002029323033557890060143375113841983833117645637803633157607062459903278901963193955427352448545802941019315929328778451246577349722273645550643973893623515765022784214048200208645992001057544848705739770811049644951434927657785478062118577914177068620752847349420723265498377433194340700403904851237391490447113445897074308937030492725787413163662541558576523357569917010799116087842073163913998060773791536976293951790177035660648082597781057561949868150677482894730878995462532354678568009054816201311684472876324732351103083935501605212814026033914797421688871346361734408676795480257258002253960975825237513719836029472135097222576668685658869433386029380233371705920787882242899598359749674740584447130523807903953917234435648065104799603173339425420539249812952655132708174110345556028416500789316725297362214460881268053294565447341004760128684305451892280457306118397494596331391427592557839559488362185206919893816700222712911074193540453781144432490829350435676084168962631838869008238422986222102840737111669750989203410801206170888575113394048394345676084156003746032010001198424094191900868719795638861850715776919778255153707652593709241856486543250061942964506383486839198278270469529655931809097461032365858270864472874527071960614292422666601619807310779832657074593504938723983046297993970573925028172335386994830210477091810797699167751248894927374537720926695371926506098849183274865759824959211935382841400014541878960506828094527937865209300177874282028952867620311798025737446358213077662860883408034860147020908645419095984713131595924579365661378409881022133001297299253763398902263127838522551785507144782466091031140654686865770596374752089998618729691556641403330368362140656163205993415507625334174004596974203982158741221457449122474542914675749605322892940966289720916664129294134049072185485136254215534062604493941503547795482084616433297385019296818687197175379964443468582597017416039395004861174587797101995594833026951796547546135484294334433934795821344215978586721519695292113311590419421735171233400320618346528104038591907619687620752895634160432951716729532399485195406948409785910682784474307287581641213721008414811867764207960195548650265304660342935974317006385698126751560336418350217421424592559300482856664449445073771014151090890632782782270299515806321592118035731839131958809138927017933183193149770548223069067598142394619782158991590124647651350880888617855452580987803022627141912590258475294979232643419414630433703960253661284712041547017583108321948093004563454098591561417409227863590966742924872419113721657137936706284629986512234239016162953376397274679072643286776800320185300625629280075060808295364910544282905960959009445727344938264305120106468030337499391988069659036994462144702175131733524661375742645235659430625346491779780803646248046706628460442278690845737604209311176990439714167183013844912485734957969131358209384121832461700073220484125583317613504208882794343535917160314011178066200632199618620471369363510964108878996901150663466805541715712566233749748634892152280538307197841740272478050461132717620466784808830976532954952389085943141598153385666806690885477599496749899122536066739552605858853074123397605676462600184535121495912214975350024604325422962037583279754130730271892372019967154849682898741610834181136574108256966093688617585122705505965329106033159683487983198363995152918196490486526778644210684461953876999075591500145040259648313070714449776583927893142125602978046606050752798744487884898450171006589034180782348944727694659553901675091489731886838787073585973951847397713947799625562187293341905866865346397578263138707772272139983121059115588921678872530296357830345360875247525687272763582990408942210738437321612633217364219670270131152050967293798256313909353434220146982362976163504932326721833768111353795758617786495129796288653817461060273659032266028735711831877857205660986040335687413149090297194486543621874456029205882114166258801428949689817918957197864941430833140292393535286659057077637277837620766003643780707723508170715950760314250564754830063731696812180489269301080783851177673875090117613341633902135389773326799010217111720571892873986034193091248283406160975405748718872593445008153519282794830195003874027670299152716129287335192151339897743460164645118762547149434603044897311090253265883751536886196538925483564409546307275940985787751563556553839206314705833708873937670398304916907670685387091451283448480238289933999773357932483064038662002494439794746194980878225829888554518043651170025185744009902105147417516408540889761281721673490477862140717214947776464569465065892273938815953312545212058972274293332458496818160904835696324632459506932861810028632920937980423231834796862678521389329575414473603313059533773476032697168595726549789227820778808629553927610613063057808000815932439802758646848251286329945523338039070000502673669749409026531696883585008350822940106815434358227640739125327150377566383934804709219201692824360836085873963070483946001096998235455594464537075106192465247497589025365136781596825890874308283317782200041531427866340695935121187963454439297240398746562407776661436039145708281517539845658512345503459735643105942911107079283990673382094741752329014918173720686015820543735452394702238818586975138661899198710503430190951553051471595428810567128148262992784752120229148367303339152051029490708033376825504082853338817718791367427030339492216391260675725842613127419139309594341195938035570785085104826425997310055707243373566838839038443976199303739742403042581660225820447075593798958105376827006256365870062047686998109708243453117837726466702391762597382388006763141428576585300157130536888916356467506596100466779248939097653531524932864752551087165513765534261626482846652674094065412722192223488958482898935494540524613199709241293809708974522699836401955768000138082121067427888181605794773193109922539394764022549148995101194398332066400942425748196638271426946828664399508391307357604275027328471491728870367584698103234138543772278755261355546807727528051937383376766173544847237899220672206003385809129162461088255478327514810777972617698285401343084778675015280168226020333227683301901658118092804606220792787945278841360478355757321226020291411023614412613690296869785692745748508807025325882518035985699434923619921804077812822792107157969414346101551402785258209956801910291508275681573152578741115621617224328668402838609450610648680779031978538126922267338877247903297531775061614129551400803017150726272712966189142454749131623139112208732761596659053207822354839174923322760642079781746864018249772156245111925088681712589989384699867907363390757980593114445434640342326234683308618242701421508737541131081914774818654425758797113594633002034584008992060322283740530433763867889583918480913531604621902136258295982952373739314395843044284624132220831411301259283377701572950219242449415298310780962798609079753185492533162849896813944518776497062708316901800398609602731625621761948066944767095493507816853008647928579102128935214809586050581050412422285074361239907035630064431422547735092902079145286838717790452268301072720886544450283202854216325745737702467440112558594243680909275353735342503029288407528730831970755921901390998274140003988794791624291233927803031439441759395946001122688020347192550175478742243776444396975368293343775412935144235874517352289748353614346595438385196026055029990952265088548499296307659969661979282323069481397647239339112439606743169207411315145058955487044848604922744136747678413703823712622504739797261684643586241225359614906819016715975137550429356344660263016023902089133189284791490335468957615235126125623727222636982833172752907971470896627135648427226548717448714134925480075603180791719521069241547704395729473485165146227886986602356593494812615232660318803733125611254314462063443939605089671755209221659844618575740420186833888683780403546072017918989732746416672067366531879715920954391326047077212548319392683470202340016745157951290028116771248459627640102397470187560763624727191381023632944255142648507593140636130266813994746547572075261415870318729129407198364107578429156786474017565372423222680005914462661815641261073822461108444894615062322002932447314314094493673800771233445496879851939495951519209648049079178969887076559016578685591703320368161494457890918302791154799948145720104829056588129717385491962261640601141016925473291745524839602688429964456112644342957856337435851496738685056222325160138479342073192078567181110261343290234305751549291818053310098166731822810469437995388162000464425097568542680203887491157654598875339786937923661993576367215988095140218556787782466506609684569737117231684314759083154244618939964032705675300346940097542282065921261751416613769955583053229945027087927544446429431072519183765006192556693661024741372753272667398484278918973294795151075529352128922831132123919689345281880075319858437996981944144466118918355005666658924533404931640081096711353471457069118140302180825955123088562995011229193193824154287255773967736051316601910321384446934085930729799700786153996457840242663410479202483743735778467019241859302468539587517059638516361940935248056747496097289227695819563439495463002110983305638517862545792028634121650408308189688480932554256985419602825982062602261868168218105270550661509241573642459799362068030971697638822698450345012735884323691522609888073245872573179826332847203116413308668986661032457695637886737051853608586981361216392221316443894096408515151884512092799024273593883858059399809569962070736849836057699008553416433707851516823829647047300848874803722715640585703728315401402056604788634256868027285361678687311992457726622567373738959843072720066641525811083378904739111710984705595176308245208222685852831298081417751630155877603553380231951844619324997615491213866358170045511982228016385343785418997524914101510888299643251467004018595679456347286763840013741304232737467004035265622159418624804756830033820960022789968156428100013552224898562587346381658914287488113145717210455177678083501077147479829528555315665361512301534406656017389187919123419524288976084027702412385823715413951093090011173379873848096118770873452135547156436991434724581252266855003113944912850518363828844339701120164437519529172118664860348852143052632137725024203521049907756064208598714449860516602980912445412950293423929724564843928674563316792643145581681833991025637150235193104468731326505040112807840812044900684425107683305654945876616783769780923771433927278347788104437807930042635726441100372749465997763360860630374169503227664148822187405614168261019276551380749354621623017010739897186591331100957214113895894984774025663260253003380676360359992374371852800026899759339964688151335192235606607604430725775489814052395563624366619554264690380498902915085676256084581651556674798980969829071730155384086413307975989878538997834471801649820143887153405331504413779869776943445769552897128973589944397618592030428773899762264080355161295681104649901759841065712284896326400101002156770457174659440580180321377657298818256607534636551741359763691177334919004804120002683635833848368336433645013345294963769662582968080012273389686105333382823777576800033154251257436855315054671476448281240727302880913618488486408084312709827491206936574330169672739716524037934492062040725976230586404996358488610363674833801889069392216169825270111687649447248832821329126612868808832398352596848185826801351666346334382372188433631124411023180290847344443089463300798780205063710150852228478558144831759500870025063645962100698479161302128503005908241573460624082855300013287663338204721368854681637773898490688100777727062016934129014470430415320130150799296690450963174427216366897134237703751382562976323509263108663501769350467749643453246525091707886013429279166532714255286833253067363316097738108820633605937205081020057676042928991639308220989477458714111300790054544146211763010297532281871108027735106909877126822470388397241678236433051568550722931928472806162852776165984512523408508048339199499297581126893032333690938692668350686637086954244999780896456934816789288896276389883166454900321386781677813026850132132385176666585831156490300229857085174043524646878417780019441930443632597355235369859545136581904525742034193739013380906419155376335886898706934357353421467230609302957608674380815579212562421056397556586169348194711607761722298474554566644553680817997614553282466180744824379903580730994938816978192090594557461733015586478199919052166118066091933236975675841034695543424688299457072472963780580133377247513450359936420262684996681210762422080849427629586364091674234553015959934477719851478267055842667183358210087170183553136252154857945978442440022619906233617864696089817843819698675731905811662141171874635113005856489909681929829868464761952915257201777579905575466042484299471384076809084809023548013763116575515009939960100236004844727308197096760519770263879531346027483677187728536910556045758746801812060620132614695223569061847790359451081445008033130243372943619959516160867161685336041309854437821040213095836425996586047542941256112313754363222215163632177740439688539010763929534194667448416980178140556992295321101479880819495698197953592117510598360049823165700068578009381501856694671344365766240754951382780683877877802039608775190905566223203876544347902224778081017642167687997339534990666050486958130678813026335239021822209137014461248154625501011125688254048284018643223613552694399299450681143134822136367511325736232545166092506693159751244577847188994402486710408768075527612631163595930351770985108723840725142757388781386558179822320370805777960253875763633012744029708337098701061148504259997037909084506123186010548144737647373703464426267792968847277285703495612603812442419455830608274545036862179834654782307254824700653068032970983732316079283524633504178048055135702501699743676834911746281820692811215413825821875943382038354847850551779896384295621349953415010962492701916351132447146529612527183999493625246784939244922822333991526999464178971669244909825401296494729116110066985066541702042094015435021233315528461743751656360420861924263747711448185597173477784899682522937164237030099973903756626591034615931094066593447840697874206776133420400445613458993897456403182530216380995180765874576157096726734747874783327212350724972039594348891729358480095532067379613027618670523529884449158016619063805513313267485220201984407820415222723593851015481435180614287020683642310420431342096791382029102464408905614884919658449063557429598827177999516820900059548329989528452857688808728551032057606362512245803754895072470075613285736213472936084518208994844442288858550853559887158775013863635998735909458711497853991651196867064528961393185760458435298352154477387373669778010857067963867948462554921024386608735625160765027283321816465766296669837072558949168846332206258933479464930262232830054017444352052397710204629274468002981958536147600069514336109762287740856184989944696169728114580252303234662236738676129630661007087488867026592546728820563501250409758343744330977609510318839552822663920089178309080308543747471177577987295052323899239072242262961096785403031757392354668465212613707353597936175411934808698464174831775148651205454928875968560381797419247121358464087900416306135823375873095715547663957317890107104543491087466539166297028909729017365837361489282929916984525624331852240647831840572455515208997159091509463457406960811335988596066003489842636081395759436051942618637003119932446736649749818763373403790595087231407840876558785104577522291730573631518111680450549862360256780142637128746322444807623863256679366940096242365677686673713613848611817023474437896702162934806031897301258403098679689620027539658841049990137416550131966492956132796656818521066686040911364003248379078929597209628467205728975408038121227649845797873205241878943838029910432665089709309911666980379354090083856799242942182922451901803464590204752603806911459697192166373882010298602718394512750834060999790412092630202276409865611167391887299757075703042756622162930009613360924871585773870395540044181085768208591188605185054175755769393970512136919104796571635698799663783046796594686969157833043523430443032564649897131928033645479193117448812567053684820930955653960943158849562165415616290012705524320300220271095776536875511706790366211270929428636770801184147837838295111593689302472972319073717216252508881420169257384058356334794949905537284655667116407605030287778347864623781489890296646388453423067038252542835067776619465803298057284104334655543451088713136233612094884580295570258520176617289800132863974030394423215951031882808364114991100377938370010654250553637372960889602463257358306130072684980646037066428399905201099969948743182604073245401803052789156953927119260159304096042374899973922286420565040542013450876929973827692033652875479376067184569825446809906696437848468002800622255258587386662359765917828676778433560622614863677814283406374928251220109563210574574891943306952746728106436909220408896939323359199576492530311350371238147362778750590481666410040580094367436054903315238099891477528839781563190226317522759958487598698867747327106746346834578424826070866196014345616355869204324645158982682016353319927347276155304861837334264298533479939360869261266463719174065789369185215502485303193685913769560669844147269530722282657184709357028186576560618132383881889409769356023326512403041545468814040282795607704833206973878910502416229299037652156061992972133184151909629830783615672568762717186306707940527324359806874414160658234860728387779186461973612611152337651585496097960420986586506641828719143076093075836333496139810085383566765018536095647019891755035976788395667274731233720751916070050992838690024462874590370771819771814586132642731346358996220224729128469446101653217789733101256896661932638137638884294440826983465117199906471852834102712516913479607211438981498478224935451083400480687559483663905159874171705746636724805897714001631201745721605145290321619292182353370423165239157129502885046345667647017444149454091430184222548977843639484780635805274355714069396323376449556035931688937335225927030499643546630605303589279370717388044753929825620239675210011681805864744639980819846435907294844352839186306248850958677353614429069048862842528364152233853664640348471440196446381941887255908127150129048158196908642852173269709892607364061700900370029631776276798106100474093231451120219968136278462096177311158980437888298020684043668720376093423142126091275432590884863227591400096619812765315799410427537985387932506267923033487479028299942524789169762871006554494036760843229842630738071575070136499022480788102772757383606655277826358712493793335870033978100803134090172511078782191981833556147771286857096756282504175408535748686109893622428631301399239715278699649621960443934047183274082475547299676222168450597931686147583388966016469068661152273984387172688259711284856253613085229610197681756646773283961803376851702212988542473469326004202483048059836626836646600644981129609050705557529509617671039612367887135642622617980023746614158524951648451012635607803873632586315812844427374025844508704642229556373466993609735409314694317106904474740742786171982989570583335089347577983793129184181885160162561766151482780655338070787408457961381947767836660761825209208895508991881562352071830967947026579542022511024410565901936715824041286748598462835118465645221989836944744174276216833533165228989843562190646597241577185523041198812627436612535496117852587557071998881901356410017078306439139281562447133288403130655173478045049490421966746586934728567955238202763313879660064493388337399524450328380743558053605865770102239120930835004347842221849400450607876671542491832519985297319917349218972264510354890725795956658793590390853332474263765379867132758585919089022337853226242967375919957295821412265156303156523458456461452890461192823935442999271422118938292006938808003234795764297958078244487035813717008333066297556857152121266633523326331305733408167788083079423356337437444020936622980121437753071648585196751529330110687840667811489283866497072106850919098152296183853418965087397344217752563764474065741431934143601273853962823119708612967479460157246878998422210516449028497401923181768470729117667354919672997831496208883395991297135115616729440832858699977441148031558647625624706267904556399710345405018767592578692880311803450910800276267704904400126759872498443074587972816977806939669223765725787811302136877149836119725681557892446928046791868114484996163269760643389108843369636119327297488456437382952229978350816781742515589133385898282413024887502966422199739261589090122717200162638466849638834563974442384132752459663712182226134454380939916492066274901758757874005780492520073414469475607589353169287408991666002866521235524768004840769092478673469355933588481371997781367105673305773204273564510892823044379092363180176327766251061862678961376880926170048566415641130193743418624211318660022566797806420112828007913942113156327898593510913459883093084073286360726934173015395518270928774565346163466245207801042051312226191162148665005278751396213305390061515290754252993829740019829190179805753697396646475043099688401128840024441898015769259996767959718228911748882791371023310328009887099758764136358482097293507026793335367901035765936066224510013665038902417626927967917431082141085857529498231753012269613673862692843351009018295598415199586691401277907225307855424753538583838906412777281383973119580103586105871800306574597701189176984700731077866221877706828459630337539140692857763555169897238702618253685199999088884765015686817324101154825889611489135386355918318956664366672227293178889079224079320542987567769920741936653259928151296678105653398762453967216021238943249671093721767462003341316971812767226908392128288058512905404503584734516762757999321546693965467297865951611202925583096347167128996678069449946283073988193471156676585998167047349418586440721004469106160095051553897013386751864442751681688028479337894541586751627137075327728002032857088260345701068292585797160017128716815658268947476913031478058293268496412591341391392100350048288128840341709407000782709994220822012485680503890033218461824824632328217661558027864825753836759790604198924961100035361513970798159262850238091440237131965382430543044158386101302084828796494465354402167135604417280686999572489938992972100835037838283788643969012255603546547588823326002550270414927980628724721238263479347627285411086128134742447345713016121441019598986837184458590189657581933250292582187754835015857797063731707700808567545183206724903494917648874898019099622238360456557931197339614916461395278490493641848684586525512845530116761003566798400161605000372017974278914544732052619912164299023923054498129434833412798173509259739367122513764262310712362621714641829809140597299563566917898428740520045897015848162984787282965454599542443501673497130046507958018483765319199131442842924223602883388842769671754855713515895098889418339120387945878419721981415108644257555519433374205312598821602369685110369122637922956459757408462813363792316085579904553464531599587676985319439426737919893264401250575514405629179472071083891655251858647301656518969921827497192418460596592490021636403906284153647478412702467281013268013465360648782756714206564560415924996472124541942020955227241120798978131449031828598375529199074730378760116433319771115365004855408494541248203081622415912557527172706890578221959222046064588415590758038203759514930574952276871617264502307283262293080708080302765362233597692040238242032227766756995943101385130541537884428182576126900364017230927333477406698448811028645317557470546627857103838816566431006871525815939668546015874009192266118949269489406611374211020257305224854967874847907746361826983657817385312684916661264524458663965926990365910954155771586210606430146719895099474359523705712688426740243882716038086077281994922272338868325326481054957031384732147358444875646212631343399354659872047730519254012295924788720987391591202181443859614105278032444036349939176015218444833648643592211385815131249341515530606943464665370279163341604021473825450218303457825835999780147489385437094938239725987901886620207558608339775993079184134488121975745498768043853491701811800545892307484961726984723953547233753688172566811542701959231489919688042885157758212882561984575810975410261274336927302500710133650583772890092120876189620028850526836683410424318065389117262098592886939140773299619967021896415885826020262079865264741806187547670208976853678576685152266048509181721991348104192337370925560660968472812660784801345234653649584820605010027484869336255951461190255203510805334343752433073185226214323935587035184081004345852754597023930043314390196246449319896628172059638964325219237311988227230891062860506094380382691758154037336958652430802481504010782215053680101339585113194173831843511159306782829835105229329225389034742261166719530760089878546435840677719450536469664650994180504611295532120280058437074810944267848561276505991055919198734043890122176882707489699691864920449561056157623241702038602320011832402069012157703618023192233072365201991532000474876477967235207983434571489372237360516867589225152419040982700540183895041179129874620308764055195313961156944254506368239176760202744640200506660927343934862680553351673593982386431352006416144788260102743257610911813453097303839245079909653885135987515472071522869511385326191577595041768487747638460264103936251850324193155829402627245894826533564789446560555336408247789377806925264432243452412293738323303588785470708881012936559188514403778359901235419394644605902431555862253803651351110946459610036431179513787932049558987691820779641112394155130459918929766038387517945403968347484129096512349115835480571093904819050252636056589209281245609202285060463566620582872051398523212303670030103439004541737359245493402080703953644121135616218445969649051440624143693575134324263113701841415224878860704649636132504441909762953280028189116131735441231096342955171437928786880936130117902056307551858116566076580653247726724029975733414915843194007134962858047530866513543125593537267812574692833014454150442676413681448092076316812342108359439242135971146868597980017070584888331683650789557439037365366693915098387075597991038016130839387203709220157577751056576706074870930738942595644567454770613247763236466570178567693358058429874321871625949566030343586533331765791937681909497081591674421628522729603215974452767249581343170654730456142309925190325565744020417297531889264837777425934898109991489575883516366935826885304180095589262939000002757891799759348098201996893622944977302296569642737167277131577562083395410963045108985223076890226068589904621597394412903056547469336017634670267543430804047140528039736629982327729639792368976091250391637685384694746729350894061180642874425541573581160310226033701649388406212062593394340658695546863065515925044129617986329226455355045261544303783009044559080443702522312526771029570011308800880909647596771215958154819586380991675540567439889746047832415402103979246288535832402984155699043475707537330936351637585993782962413700687628160089206246149836188759002137153494442366291594390494100266543373347105998478138083626367157724323244374747516679891581889501836862907997158125878225700083603465170757919329148963208928159033889263180542094555315032372904645645970235885740142468951022986395582295155993612570251504582940878457196232228055163262725246922274153505348799675595411396355614170664786962288516117150550405915417528223891436728305698208131430252701228462807868150894405279042924435168598318828215485811977262653549712661055928055884119272424126144505577150557948965677946314546707055577006370851576243816608753722477273758319262041976585080771059448102605699277840335525688835430530715152267591050411347637554966886105536766046604929828265496851742512587858641016369839387214568629027932967351676697091649323406496521893392621197891220716879971156604263042624253017054193481497251510980700946270503668168687319775700128764673917733043036697822117617963013080961394064057708650523490110330284561069214373942063142536778186887852897568200651277640815082082165011916885316836238455447892420302436120945035118742212306105951003050519631475056194226625290963082862961600493154333617076063947196755670528542549694359058135010501761972316733928318372059086818994461757611500263616142284220604056261401252349453624851577856298697200865751802251588455074707107951298620311926853524777854876152516071144487324113027114384656915391228694003727060215394953187915706180366194293662253117693846667436539427854486879292700905012349938008845110628985707627105754258358866892848980940847642667210418089673405762189535293742790707306827163965081307859717743780921327753968269906848010238647187733236790822801229621310650480410399533693650378404203108198732976642638474940835044815793741729476203804009684823432316016447619547002395513372879828304386125807567988409388049235631325951488691294637088853475526027004540250426148388094590257808959486007304311606305684634067690935142769918104941657736766542674239436152682722243701535496316775076244265329196889041574779612369675161082786818335020230864309611635566707459682710515576757488897793648068193892714840049248756252142424228260502131087086037259566968130798694413004114828027126141707384453159581646706103678138194942528719110475194457880056744601696393212861285063352288837355187303806716161224676058019975929096333010308705366036889914111818024792048764480006539774576956498108976838050944995773162598585253429441364767496434049420097673151873532842892701733809359226078057538741616142689183501249315095481799391122358452152383387627096382132114146463790625231095236614023232442228127972274580930544436690334390341057480861625265978563702458923282072014596295448439072764544250395226126862730332874091898736807038524197159189773895602682444423617547790868899517514496740649393500965064070130390308305272114898453154654420274271144363147830667208154875758067184530704816589862238592121904599631759635519476865383345753691265302175069240620028111393669736458052610943195446894986323559163673933389721184395353229563069517741775985964333445758801047814037132960054533302992004001674862885052249669013880470887395493241553028828663486359689313845735283124666345114807839759243389563129738814257698568274344076827737119630966593024899237387999801747960027608788225059530037837925081125178865657432309130291043134468466998220569331963970739058578541077403766428569685266895070294399637859612386858454886905240226179672903092228713920163851303435746409885635343629775043675968357070018250300533500573762303277955593383959994736317733048451351827100564873870330282571252910622929736568818096271732127074446247126973422632645711315755309538229793313221375610301857956755414333339508079246031969649406157616295932680810173022915020407607288006181114889404762010297317054510465431926499401640391657076161478043987735601738620177571322819539717044109687874210912092483072632250224561284403342231827055075597468471146419574899093548861044202118512509678775898454092471124073483944332843808499739390833780138548753664974717725994677136924528847570476999404857913616423928778032676427885647752816576355999348092152441643306082645256345508503749358868892462290325701060517743309984700143106340088722626728916469070960136687138959918413389359323802448824050029743192043832033072069736055031594780758141129354701500733350901676936592973984861732481613123270065537232169076720231045110413289828840263619058772868919657831145322659924466633560848607285889759024433088967147217033207142214477370299736195711331332666624422334498968022335521362102509028724916252177693742421491352115002221422053524855695898580791752674714078385991360500613372492588619250736641774195187893847119713448890570965068650285647369275997223961281682474019881546095401268561904165486215261992724546705495628297210358713978151446420871015662739174829507818996619170956068774883146964856969504827075022576658051534041815668187017720022672127771550477338544681485725371770573003560389689518501276157910035672980131265183852974601938717992364416221909776993149475138892545067751133101066322061328940490219677787558693369029429530352919233108540045195757520180497771218007975434748984068365728508539999835530193633706731822875821053203797627256226688483022325510021648443914552004663257883987997711861446198959945642391424698249160703849006816066206563768034424819049063930146961710567235798080765782959572886060694720508104599786709545792824274770485682541152467619395381420701778327386995184483215296095983887900955761198978753002436441749853183736850356016285586226291950256113651606510413720093273061347953921551054408133582882671146730046455328706391355881039324736148908787520647614769540785854129133327699895859615322529934831842026358280647886330065943097144786975569426155267248232789439945472570373514376052440295116665458319100093505438825715471808605653662270068366541756810966957911863741973885500887111375487673817118608703107430785600083520793041396459602518739017656148780966818657239275763268051319150359205663463225248114605394801039129769315076154215945934996734443287287826575796483684750552414928417220569978980865024305415209245982020354247083533061025924614894051511485028775857943732035424949802120952808207509254332387770745388925057675171795841183921911248440022081318691873633284291855317390056974607553859039711263148371486912112837924262965329320698957670065613319655633902888704875747262081456966139034872051460120450162486330070738670807279277174258469590230921022897485702452700521696528150294565238281427309656575993211454492360937973485476346188415929374032174634510874337406886044021732154894690839852916335688134937509381991181262323688725854497326633237505728214049983115119993694088985282686514716060513166567484171354146137708364407231333913216572890094178358515731721850676833809787239121623337376724474042448398770676761812494185679314386797250824729655061020536871685588366910131563028879458888971143844848677463862321242175906204715224524059687608511092787146251226241199330950923189295448398953569303278155453744231691429249955588658727972750142694697594582627399513956565972300497459045422718960265670582545864034526525362131077157984010446107849031864425815857841923931080554444885372553343517957337128712473000826940365449743079830696420552149363155196056484099566753607041389916854854389822181297325164022380092966091321195549255121704910144340074094446423978100875067962300477555519118837799656171916606316846762745101780025433524647307197824949471424479311744146129836863494129185980543197955231890667774015011235687334985250322512561484249116407087644277581580435722692778771513644042695455335582505875312511830365544110009678481314465147004383142974584209315755639951934959594077166461865416338775162642517341278611201799854727857082133663823003623834922894352798465930031578242867973446046616512760252514152766675981215361154156946216612678158511511283743569067587578096249099841727122839715360508385651547492847701755400311622886209947140739930206237943120606430844425272935659086381096355386884579826766673995136746549607589002971657757486133088898631580418814401100420454318373278251595342853686975189668098473509215528374794030410719797637126215071606101450488365530399571782850853326113582499187738504882230495924269200007182353187595176861054323216526860740353839209749424679075333813503325082893238432815436543290446693903920378432991318989721732536281238275310688988784190246271793438755412683599044147924003762899506601742079653208328993539092676369156206733314261176195035232339547326855630882394164984386678713859693742299282149357696979533524359164508632617753182150895415801844907953722468425603473858414737681833969460321771787680360341619973356369859965757246854777025105013102457485036806676751117163351842208352844785668537157069352522248460840558791547780021462844201400369790954252864436037805375446156019570525749422990130577865124410322900810290387056447782976832090490299299441585792267672758051453858854505099227501494467040521643826586926267087652789485020202404502659905812061435357724148494937078059402944379686523417661260552627917037958805112263896368228162234110153908467506176330919002863154460175487261514512589657213144245826638072957746046396204513882054076628730304502254330541396813925217970889007932370723876506042382302831400553507641038439555196776983625358412273888208876820865454561054070069464256011816322686986421520158404545340151484029805232891059426661172675356839214215740082556090177679354881151525891334645678152903908479613724973010106188424913869434998378874088078818462299597732486422389937490044945238436179894907650878832390196459679287238920477786327898293407196467221077365794185626861758672558901117353719374454996865996098461847507205039197228851525670234392223345670024359327655993472620016493805987889750957959993119109449935136332343607626376521516602474017858557631054839126336988951350751896650792684472927276169706791056929915529230956788280925559567405284038324685466231130906894261020158840994000556411370581048772078305045248264537682382438432064985937145560252780246312728591151009408911882417737078631325443532887121809837183814484988266470537639729056481153624234821225069440525539861013214467173474177694285943209306929875269318791046212544872754647488619548727887296840661948096065898188010388290718051182121023693759938991654765009127674678699532143335111728148390311292280519131864029310730951179412716097039681575878246028015666415783619378109688724069284006437052659158013230206743482926321868553853145562441565957868500305543511111649794637428724487789790688455860953377606470159589946070251931339866350754620385874983529627077450355775241941628985978704686016152996967668350096019607695912995897870356470819096403312269224999232073767357281042257314922567185600557482676839688777266899579122529656489614636325257490468697677027407968792271800007823668832851004706441876471861519181109553089941876350432686233550651934583048538116312809798236407200227195839581577897502909166018007806472430122267922552178388464163167949015358610860538155615241860504570636278946847205506918028881111010185144033014913057098503284624203895315146361627898952688386218501841124902469167855749391126747614026706895081348665877616279417388885618912690784739149885712003228399377815008066937483148850471781208512604575891807704497816369579023151983320066646866451647296169313575878213139479311921994753933912075168195368860361144840063306617031382385609927406435027942103262646997822162974446670517623573408694033590891075581196894336110012731776718333125826537133650105506008161947824542033529359130904100329679321444430479893185911017592880394076940918234165613558078672544818343893892944747633141367713679541098881736765917732671194393313130012788450555955191826775582258228498387144236600401260790825929914300436659531655289079760830080523831060953118418072467955260027692094680392356947512869915165594489111078024182272740013609975031173391861943767827185841008709061231378731893243873750126735810166901761720182971904797312724634923110028765393336936223305094042922987587581077378300463683794242922342304932768094547596446645515641531821515652749071495963578183894532028941913590578313599975317720011498907789139366304492891880327435314289396615696922676569525587206925965797856146565105282300801037495375324417748305571856966572054575911252847146856028227073373251821548311831695352230116477467992325155396108337868836361996232559358121132562195112424248585789615810234648942914588470358148096080481418577882233047413529932285914276236528523722432300898248274988179121214667991144898110562129959373219309302037703973467110114667277216346124884598837222086060543273371704105538977248274383745606527098146336084569325090359640927130785124738222934671602954833031916947615125790568021986921682675533722969092361070679894050983422187254838711459081765231643967341210950941498930754021345936553560018427086263787175224137267326039148068475378624126626088795194712286323083093072948689026318132532970173632987941403956875254615878529108129027994115357744844534213273014514753640913564470065904938783994172953622199216600139426603776242546896611278615482385029578208207944376718477954347684983123883747114567535425699126764134667385077012019948124607025599651608237896711855590305618151039860799695964796207617984291825399232483407400105139071129085250230759294277442584171729858980789225542514383884411790156277962481678520887918636913842422173599152116853366992853132627197516544797115636658352042886972165343246879743019559425828772170660488639320995040221870130199633928038240262308834422699354993558076706835985316595234653696133230587425239576335951801932077018115613712894168867792531584450686088330081050555183702427595996186525580476493907683853534591523166938793088309940158550425704563517247257447250620879594088621996541684207547285403695***************************
213364190878204715571598697938049783975391169995638450693181809885544882053187176356909066903559463454019787370949620649834850029488729471074191836167680391998336827322484377630616479131977501663948993140965590867742418157800853280675675361137700539713074357506142985959293650150478799722255235567836492770615096817354235434433695804071992436292576916339394075508774371347807476321911359787303915077562643511860745112448544939317239613166594243468700696888907607084294852930271766043498547168040091458008613970256598810198290181467532241622678845074780161701471384551776134440248489505643480357814340193827559767085629175334254361115572155902682605966887665052551621516908866869175542666934387288492366708690947838583098827858488740755392355530453075631108661460589125868840179322210137599748324918287935625612100182399899360121493676393410804469424237865894467163451503595963002454579766029771897321803221704280292559261995277071427910421066012161488734667490560336322367502286483037540627346298571061220725557802839035821779928234637828030837055201927373730486253644846875303487839851040240285159237164072244342486155367031438068549349420559229596864322513158482508459636315215569047100609747383934451527936899320371482654215189806667161503202823179351875367550217278576331920785589398495039769315714998605259962095741841121699305099006294506601922720315374632578600385854459517010420885004328342429336879443496169880669886911016196380915153810819646619329826733876688500271446938619546386397314115808450602545408466902391389778821482508355408760537777189281420652821794113747666348104991449851733813181547252098907038023795001435104674491843468365249050797431525022258092218123656655844618540924650417410233992542143107463566460373780864543803679273827808874439430908366169186461677564319841265786370093080171501090920831483105915783399613827111686604392460181173943307049111448410438737850165365316188938129187966716907437577207743315197093928894596211647824082882403835803372218625637754441843518540934657264704634104664992836817224459671207156873125973459203750478773879069700482148375656998519266681777412091822837302768928753750541510653528856444250977276015686030028855582552483899069837483674966070797789235930630827642675967195814891619880414805848289990683606234315022472758392661003891465993209466418193596790514177711776257708725243294178926458112463963105704549055846695306725459647557114789963393000220387735443714143559907172138709004535837994202402021120351423559895880841092944630308714638662146511266458255532664377668165335441217541640188385386641883010267115936953056891404173187279995607053324973294725550441365764133261421321683276692287095662214691575899701131252310681329608152455387633586019658808558799428144296278449434755105131008108723066740537648391622525505379008975620474284434634380315328558450103951956577947941266210195266787384595759083670455200484468375655654303776222415480842294740790556048733465202931223073021638672990445161755163465849974433411231783124993105420863004415586581963802864461506164034796567019718482356310162372207878708928160560348322438976083278363481564220375717262513279499251550964171397556667353593064719173048739173309595771951971259070095134000104324716044360567291453712794316705826823099683259520997262381072732519815306526556833352364319304355303962160039197874997871970654463428490006915824301334199575982159188772085438168768492448238448232906645367200816313514273855761670881291683603713041511052181777409321497555896017314156619000806202329246977699434343841266489290407176760149452035105644873861162872087891311541414790076854081780260468222394376603695954494644506216560320800469063768191640900113784222685399669312433777172696930924930023861643419964576916487473721070489476239276214704848320933398402114930614892425036343214371926588510650359514703613716790686563165047271377125256795483798177074501743901547320804266267911333545751286643965296838697456042912916042450171805444565619071808935838735102553336101320490433890182386347004124345251199590332629911920203979578783821388162993070113892731714601274148631238685447993093409981005998719885326306458288450683650642269630419373216307836432277800377224789048114701259626642233614862509201081276510242849584976105884534207162543624664315297638092571122373853545925662664335948453352534844271742517187348029851643759132260645132418061536337979003621317947978622235973270104767651540435854138448128727344652594549508560074258329830414541036355197488390391489168381583617993889030081559988371904222058659528872777447088807860566003456120145710135056849034075637782258810420476429711892175988857871089697152439752177367578611736183004893211621482780595150581102184129230474675082642476764077179609021546473266846250448710195610146988385428252096019062801444344029671340401443297600116026977884888632431570182147407770000723301587977974518329580914016687820960820129621441659507981983835859028297154506290767807239188073697178468062997981288105001030557017305174308170261336058201683598730620350262598583275824071358458389897166536017268579278881105025450294676262285899847591995546406035140987368142425042143011773255034071547120354818177527400502897006623936348186145903609202764422207276518474384079768049558570503626865781868237385182542229274597989142767304782665415602519023645380405577317413928630496070821417671374871918869379888381067351052480003707999219331399596680625383042373172592741896928271059569335787850510195346006830508375733487645753955680502697183919007475339682155091852985734679532350575482193752474699356932807770919701272918929037272203755364204944672980531970921079174966424593793645788068803047334608952610315655215827991738303152283363353025070128121702370292830967403701708210632236467292835245880534589401319343212248326702945042927437443211520924103568993321702677960641986945710618141870272210320853739481633914911566822772915521316735214317310908605759672760576530149004895823212887797732429903133096602827238294652394779471664646257825496122529040844430615946768027394719711164417713042953604318728022124162664150297467653030301650535476080237370279261298680609561492025000324082043246000968750532291173577129926221811626321198016678934010837052513288517510218140068161191879240610689023454119534706429611979488147496046572079486628814622539601072036800919085972608093580552600924358044183342590345777321493245086754404248746784126272214601949293503563283357296584161060323159990108338199261233275278903642668791220192624785777450608085114109415762959189911868351416866809775514578368755417422910058337044600875751352636619592833163564108659641582479695287009553791159908152272670916891081151726831845721878895261225327773009872285919260783679165908161698024732820752712408076850036185583909584667089206598663307804794879406936081555444632547763014835185155363436039213863661054745335829853862169125256305132241977093070649141405037656823811219667205573093474060266947254061618928627015116246120936115718062721574155667218611540666344216126419506287435308202005647889778648713296996758610734623645659516279235662050413035534464775118779868901190045703986052307362214146407781497992062522403692644586405562204309414940020292032701738112283896267445335710258353099145659982145863186636149031494608460010858071577608502081974691286773680009272333717478169168078317403802932659486464622158662963083757897958999163338474036426513655219196715240125002549298067823195248287323190833565568433222898872898108294058956921749274283552144906597763256401556063774201306676075589697793489248479227780314190463399363500864793236666998269729596858493579812987185987895943132004789490492980718810629646286667714770262788694213379356795861208432910558361186056004935645621101956234015969599724030863136291438836589952442088321291193321411810306703966801211920919993679150024713622863570523835143535852423547581264553667122931227160030723416340783390690664037734137334148827436210304902900402332501134261433476668423869914800495917743978096160637685826250801005328099878611799412300151927460326496408682098320855668368067762929679286359859333338383949778549889642467349491451689564220794596975345016400145239252073437462538285974632441140285496254639013921414315483218376131687258086894864192353022519575857204548953379503972502839571872988045686690546859716471750580005513857209762380346179975551566928171079172610857399042749446464746332367625218362042727040770073786372890262802959045603997846252389400056611169255986782283961095054205280720049794327946455298311482369131773249757019365028524823452208694696811430195172133939394136770355844135034234007810394437262995203904434213781229414212952117406115510503726659257067558535071176554929550576591920885536964948541473292432700314019585971528999307690625285284853903747982687771491750107809861191893629396452474474324154743708938398208375842715910075305497479727016415996627255017001975543604578904890054454526542928946095805579779335137663272048576557420033463101646443517281389408665309450778339217978774072189164671025579178709593383720373746696660377549751187038791226106759899766404020161061366998024022255345100211148813081807352342117567324576398172854538733060542772660357128610134691846478594275178002678251792565479352620428656178836992925231853710964721122899324903676184269903407430845673524326992271954717857412996213782828715849783713501461712208300255105087831104684448678860914733939218830698480098679379704808362931849510115395989820306068271138623366558396823335056093305751658795717990963087885669053965233223610087257244752670997722791401243500513269972167373889803352790942352016331165783310081632287262307771246950625558220209268857765468674846489029374275079949538482247575545223314168393936855203235724300504537330911772359038516011855003207955251122143923985347011427154840977185910076867510038199563408660592996892814815742269457890378436613848816856511913743181777677957484687274710925453998391327766041172031935241408043771798921137200903137597076701813306468104079557271963780083029153147765395813964431693878683479999233896167538374328587941350034475249713546192717158634315927514319251398592671209736064535984972911944997105382821176623686103110091275502393132672575091215103274261491395066628531009610766904325145903359551499742037319596541087745217150806422086706544485785847190123953786636889630858879522912237527572545721121758680645691666335773854881537822330094015718765683232609311893546594468156618836601033563447286880944786857439433867836346158989497273611549871149857025695683579149979082180263845731094422032979436454454505173147306227606262674196493136507811978934885061031072804302962417435369113816609593820220556429217746743118818253364259435449853609086672007982216663504403908388825063223170105816971432829409586040004367170209132586620994084940391080857292782745920774306448756146657706948815427108298596365399355781132213648290914907108781474971676708101936762032248716747966606765172631538755532267869073799734271048153726789231886674084480252815323426980741799169958197767306160087602645339635600746070176082084736405905230364837188285196220478429005051674050836201764237750852842886311182524929354757182739536106766921486960880483782424272400445567169669337027786542644438537299878931684091067063326380896813408419910872934122505128010253365511452746958431992660562552822463799737950962846962242507998207052926066163595992071446201112355128345445283757564812162496001959919046839443052579987409985302825245164593339658710238114375756233138562712516242621266932306636347778049611295133212547894560505522965575428197713526926395097957956861416623079769984162297975852384788243321225275933234029233349289280805570756756796204381504710980137708067157519595786873785273249806124473349634186781432398684100587966153440375841307708168698255188826640669125872897424862591955054640029833402689674629124690364619389575412979277013742639311277146803897692047035448225035100276735972923592497516965070632838070451773906660934067131825580183622008144593509286859177254841815935416131707848449959020229438013017728146068537427434117881784500111028842479404548312976654051203810963878490913923235161333070266346282878882449311683365996906554383997596255457829723009882352828789591764371433427533711012213679382172975304277460542106487947276592837037108844901060284853280395801214080383421196193710223505735003069081783037921061040627635329422023015701881370855661268981575018380376466055530732338384847777864035879767879460146447824594019540485074797299899171397421636865017203818696936769816402640453851012150820449792467645077914546534236735596249357482847194031718465897066232342393796375512495456126195096466522625086023546771843232912200258460294256498245980033732227957979380534289462342141547410182276271685259862845283070925830687047349253045087985820231741784694394763899770135092699865001242379988714895066814255102223989785327261957284908463594296392387501530785926405586193329121711698091104136492745416398653500087252063829528163070588788722947472769034078972547423111953622858355252584402504462152150058803584658611152692263930097345944912036713465863906142438782336898369968725680835315636044269864195072290465274315729299434755632659220196965057199688572095023812450830304158893976331789769751191327177398460139312758363947928465628693728267959322758856409897359026010239237728194138002478595225009451893553121206116809902931710551113477895159650220109238863635160981860274269390255996783353666321600183935673767692878308701404748753222094112222912426935641450301356083278033862771744107556646533485618332704016887650315237941823600824295025999375827312223666885947222579699573388002203989098576993343172046347577484081967572859345788287162534943202796442463116230081914491485275119500348997035107244785186978769385840800552291799058857181028885429011256806906579371183314210034123316585059259762760970673863895536036698309199538540000191459690792540132198800698269686703208645529409263856919708398881207262799608831887435764689022710276778487900722127449924240846237524458751754871454767427713410128306601940350360687606591136104444499594470895048267322235953604564124385854548479583542755718401565044299458300421983653143893015739780148766865680446471286561083256437148102469282538401658706372760437306930915859915976881338372988059591473921502267306969930553186683363431826981192450594371941122265512403456590427411235413134706673562949252955175345571178999317561386274264784818556410557609891860934070827713089707912681089860109799392092252545975514738052067113931476785093545286213712383376273022036208505259587669899495058789488335890431263776074185050679838199196560164363304997084200776566611870352767573005898927690759102632069505323718503528615199052203982123093406430604908507451953135099362571670203520589141418758993700637846588163635193306396334945276044337264721038459560570517596144589904272639957410001916679536580851705911490293073146905754973734852539643466374938040240709217511363900657292464931812011051765365547261356892608822995505909570003920855457952464391676559650602536563966166432818616560470450795259002211382970181626603722685441293006513910674554945459718542029445218861519686059401031943910497632026001554371551341256747784877429260750051235036048905949397530795098503434592225376748701220802402217211180934057621156801948083290615381850541883077730876180435148844743863040212352494212805498295404122662451900692870356137333214402141065418993976250602156588562543238909214202915279232583219255796014071521049132893013442794687691426871360273276494270716252653741896224404397133022914540575529300919760701825447346544005482723415588839963529846823587797500519729316458918735676454943220087110573726612708832925079736774616346960185717822458208865665074928547928440870551208613242580195582401830157113038576218983232742118303337951571800563432065823374463797554819642882576169841417828902979664450561671936955197147112988954218898294966628739073653176116480272714942845711809635416962426472232117070279414464441947452461691517188294455074975818814090371740043309277610365044656797114521887086972445845231125769854687368793142568071375642843426969713119109457283101362807941191994898363968066263247067006309073295811941632025249811446104540405331957964981913040803641501492464835014909001484491425705939931999236071530753217545403885052088771349297089633094738090063362165286399761318864744040495965190633259252395428716589380104800044335679501866496699042022859930059986030140747400931012523788693593789351015610066212230126498775920049758634974502789959303399739903295790491077846982591548745966557915354190443079911333598243034257058098389852172652702793830498614859053699423297126455183012006490281779040090885494850655595065625771294726888089279029286751328965795865805282097289927236304704922859934544470577710742751100600410091086408716062340556162907671063059490275669874593911202231770296021374969512559454037605233235994837167055924486396196521769799691590359104670608001641005826502518449104002683405994693802525562073490000116562906871232019225165417301337897302475254111623128971983704899851761252370601048909382760637287367804142200022636312014921016670891846421903313718955254238037333003793517152596564695138294768757216324091636248967371749802611940195432187261579716786814024080896689808520205005818756405859046793392699263302676421892606608283267391144935357299959831296062024087385522252653117332717937465577614953114100029728368270486704939652704249563348622350769378523960429782958623146221652444011637413935086275460015896649056968217428023974760168989092985947817160756814563016819970533706269752144458733678841168536445153167275459245827000288978145321704203854236238417490092045280161214100392952045596952173771988848201424174442381437401162709266110592288940032598492630597932977859119841149943465041032902591982625503138712080291924037178282063214405513195282963059692343486247435345209095334563770304997370888710244288156279275154832218945354466951131976522755487536934644347436792529787948740771189237202144190002758108774832093249012631605949436687593500531405234682600168699027539556930730603786845462963534362871609734830511025283189391772719241659912484540544754886423507230779358133881947835015014905666071159611386055420493172487890993756196830117705956490212132270988224059951624053314642424010774878801736937643681341857476428119602712850106625171906736421107657876971114059311067719811943539390948594848718871489389056749448994190658914382584072398245159701039224200937597657071600370391972906916001150516067652592497409064638615052144748222153368342252324536158740435837582569124849540817579006030055037497285787839700283460380853283149826370100617767793984429923052011960859134504189554517852382340994955992074369276615486348040793237797421642902929958331135315473719374995716056857471771315115665781987827461527105733157137772201552467895514910745651706560688252033926321806799299305029826489240295275088445777705831779688524667086842879382350600851241659504539641734593741756620355726658360083507882388296695203937875145756437429080193879236909083421446328349568604214094010893834555878931023006885034350009238785137525409608029794572134578810705004426658904145684360872158175015187583588407241980315300179003238728366724566985451430644153710697606337919279773142334106356448801722508742747598339743827985856399781810743835864973328988862320808268034519645906601735554410591577570968544146862988320689225878860304271642723057968672227334248255278352115533155118991100988909274535469419230352329640926783201029746924918756795963721739055443822873432505203802310711430635546496151599017959334280535676403971735997266713932367628370871564211719810658624588590268199043998561482663404079880482674214336431511720504850487619800205928342897241036175377106649606519500855445432331658254952359768523357988863186466769660850779989883092232626721850011906076858821424975560447628356509206127416221620210387575895131946994403659892425342861279412486222460368143142705073264981246294413042834454679626636486742295289439401543777643756587597273377549131626031679905037558853094083090722138381331884052017189025340272778003595124288589233613848690197483319266788805799510307497651495259250829808186211900661424445727343279827646936902770117050576004970631860094126758030545251897728190948604493921622859491601434240236254915439808263816306747592663158487754592975171597917597209619429205820646451112386068750008845744063617495983986173727494495023637399350088106806331989326992509673098463061569976058681379284678116891243798057085466981733936639417514168290875671854121309861237167207829195726020485355556864667917522721557676480041766976406894155312617524421818321240601564451425704798956405409880238931828260730343645265335425670034156544967638342735426364314354575289604126289673094252458429887679176240409559825817454266418610689664262547867673452481865314182849626755885950293638177637568280691229596922455991384307589861381909339913763294959032111692441098921635380333601291423767412728060962752529962063465247460509332303043596764742629011903046175956169958226083639966188772761735757177255566180408225564677773240882496687382373661571283872374351112281729825448539768861839821304657497373284288001490633698045690584803019391664802361054905592382128382627135324279251418771847139678163202381978417545969454537308983387746744345436975689518951970242026567459239583314178629674469654942111247541456938569087568747683497568410810008443986131909709313185338255171258708528630469100024193711159696395560411626873036328026926719563869043765459483545403194685915639290601807476644378270760147756700545591280574267247793202420660735633690655477204369799856467601499698039383513676711735846411369314322819401350286121551688975049793277470320959527571092974558141906159487917225586223170424578798260952509734190516478191468287763440060683309163168916282635663222542529161813521115307116645944276391619252656678536976052777285392885801951495310354266455851349426277039728899779023339209114645801831032880611460924546397220797638219630403114083578831140992390200124504710510296530668499605605845971042249907067031280933517635239601895003261442507581930866208907735523423501469853181337680221470459434100050541280928483128704374818909959418268404487697171381565101369723301634295603860397583007677216496285929399636325541399706056038927949736185400948359779318904147153408026293764418879789405298571611966796744822778916404274304930742407514919903962755161836215784397373478031350644739103678284075990846599223799394581992943696962648016290579735672790718607427104228586013654565266489643790199275673048752496545149871832056552468077408081210206619570032612614898487089899686793291626713241506475009046896216754279240340520067038964531923152908034617376622845896834040014450942221695137914889710103317149963227747307320831347452359255022674518715138231286122865950716295869688405182291025055124324760012749412395752592534244948717455098860508738876468594337125860655334634644002057636100826638083574277416289067832452908044263157053389132036924426939420258483854747495275240811324385956007327197241376709330529828892981223860708542933480317938041236822139033391381621686952219208011145220515632359733483752712308983861312927873503367039457553118467237211230946028997771992955923524912716634351269929457955263853878957516443745912244836151913686408933441236053008377331288300414017125546660910969359679433545523295175372480414388651307713988306796272119597158181514850474232855120512021053135068979642617845639962206061857799463710512157717296596034928880634935659287006457298584820480954640880898265119063589628560457591333717126380035875234763101791016660460763253382852993227907564665613185833160687177574890099414647934161299362358505317533398430399604423740876574005096271663649719194444580152028400907995381847485117056769192672054937313931840321834605735633722741832967493462838967158519872784108409828679839764346047235752498274392487284173040030458879628256281609593931378587676170044330921835200211344468416456288840142315164128685729763249370419619664122993600627552246284247562134143459653871073411951566147690077140782560789484419612587012295280974871069979195758303019123734420120593086556602814189797370690945787492958879247903575608793283788262293535545983418709904651267607350398627803493619215348009490845046167240914473646719543776255545996052591625142317886449373424293403599813425540741377865628406365573481497711734591710618207391372826926512160723033835568082609363722342365544419500203648324163523618510207730284627676249586729460494025630977396593303919463657102583209487785419253414818241146649175262649775232365962168783997968150440467861069407157610482451347872981874213910926003241704137625366549141139010920197149422814210443714081120203375395522584623747806656630785928380414323671850179569310207936661931686246606911907994385084443812580720261835482283667095690225562777229975115314115516304664726273059933455415376975617685462752239423953348002120808706743253245313477283833846900217946278373993802717699659754305312616205646415768437607123151686073306931447704724154068852847364589856079524074906618109374744938632803242361578920971331547344605596249423329522887644009672472512645299576210443514925859652947686482309236302364976562115229612201640387530011294688663549937817965364310047115943386744675628244557303477932188632787607287060796809826885746335754807949359658359726295723657335501513770827722789281456286113465414701600923697339369987890293158146633662857309217385939550977582833982358147549598997143421929955627554863240085575633719362006541485330831710068027983517705961921659411118749434784364116820990864689596084115742300843431124015650278863348901801111817258550456572049012390298652819227264204146520990569922735582063913939844104106532910871771587651286283853686170792667955720236666040243249804469227458619005885037121841363521506820362291911527272355030161076361796730396716100092616745171265204780057841288265204957174455858973060786008412682943759915725308309476962878378007646297290372292822180600118946429078448126178914688752211840592687282143134274025547779828046282112053937665064989146820841163891192689622100105001153750239444495688480910234231006611351450585688535806719379030007536367917335526777635892328917504849474481052549585930629068445630050963942460558641825761310913335399076106038317888732169592123531911757851876789129293174094140820829794115578690781636099568331356742653938866769289509085832668748583126600828267207452587991111676243889837402489464626693070019967290051435923312323348770713587005414707738297093660351169607016000929150039699336052392498990804154808978351498714823266056768352992229112108960041258393829598612064844048271474000772845352016054661126258698431670373719049106617653200647456045262086825693856502203882488740244692387488832189093906814563190577500921176618600582449194379440346413423387111265127711260255533595909804874308352448488782748227781723005213506375012276108177955242283399245658287240193275666859178026489988298008714121022208163555859148645217896210080769116764540539660973088064895773087133102239071775907044289247134965018662149822077312507075311375564659204503738907869734472575618679344134775571702632374770289033109478194841987726910645909245319113898643652954509879847900405928094577801235370460267804866653677148503732591264249428532871224024120470301531326897411594990230868206376775547470729446764527321350515437709294929037768757929638238732231729971018006502512650176203674066408373237099284422142506506953796907208197161743320109579613144944901161032290047807406126937641223765050698019168158430151895949638418993220044663112132152704572925226540934053321322923787356834559870411228988775702013893532477439963044994459651850018866229415693462743067522260379679490167103488800932107308266755552987540602073075714570354233744653272575189864451683159641823981446227538316603394498599372336347047409711343481562699919352567407230781279362676849413665918991784825912815944863095274009981698432219686365083464085732378173736214896678952634314320514742922898177340797516659613305367999848736281928248085959228579633406638982028305334264386370310172255374475445540845123617397002595478615181017752654944521007485111659098620969761064678832281010737407193289336057621223755231654115644663675216186927753704654939183315823894007429213930531915879141540180513771490854333063397732375211412661820002700305406012233796469654220573392773168151136457186364830855375681251174809319579036139695365591804883062837994298069823184793141492903688981205560390999576737163380232972474385812776416589353985397331239820867052524262990074975034095653298054089324077100584630671739179733525861300221520383280874852954763131612874968693714265646413386380181758340607683632580866504559780874022648251465613319114192977098041396458266289166316327761381396583801572857976216427302741968107331260167019152650777583067213990023593297576353576493326627051911643910268808626751039560625708803329194483502462306983489102136387556117350954748564324710330112179905905349965782799080498446291674557999756159854150267612100743250792815897058545740194922977062819048106961241275905985721982142989761162950068270010832335901455878176838663973909624442760543064370634017358091192173415155521064450916796981943177471929955274934850250123699425754198754300546288400768293272750645378811255159304372054134818955281362464461678605665131906416143808780506005727749134224458111470943332831810692514483462033675153456022260530262389201967179220625314449350215145915288029720258762661111835644373019620252194481039399783526466727422408125759122348216394049042389767216489084856670332075302956708317444308614505968654291261214213235776207316649446108640219987424875025672446833803649236810498120550728978373769852725161734974357545145497802261314383958190020627698935110417805692305558112539148736677616500618593044621082468182054129109759511523905591899449404227934986996588720791870977196262950959146950144510429483628667845742418700602882733278566851313257971019047200312225025397513360443768332246240338651124548851803548261772442803277237999617023768411501962829868111425076496169586271479371444261075500546403332215766527309866261326852520990272808435945364359705861760871799809480431699418905807218731186559771355428267801681692854349950450704362559349840682378128077745388031130122504190492062451450170073168363209521944854789047355494808286702901154644829933661388145618106765535381609526763651802381730293356701719718068614363408587245982628020044745404120888883443766697999911313809609138824875360023667390837048305625162283736713603343061420007883763105403814833836033943089451248539199818341364461506440306525669393313652392891167740531376688338464391820174344164808511791893667305647067321387764927746818042644473645285095650492186737971159110596432366287585038931652920465323821206523968101300100914293256202291306761727997084814438670334125979971773727981442711954496111928330102194078391089448980873975850518750800826142560114817501692721929924563109893056561809924957450530873824057094084248432636093509294212422217486010821864059398385438316431455510137746593864795209393132714144482329426146067850416530513273672901781813460317537680775468894357711471292436752854575661182037675737780853799048916852940342789455075821810866037916856282833990668681197659569205847931073634345209636545839534660024480639641500098870660035736908960616639735317014135780117998763726847368278008492673978653304060342312701002547033266670013965178913983037088877889450486705192392655750086173927377285184537063472156577504367895637463091712030482869444738330386502345393798547214725523673509666768085196423946606301677495620745824141607997638216607670093659496078253337029009443751652252877231331083407819536690271579987578101395955800113179274195597100537614590506047982850738837096587495499692233253048973364708380217929882638023209774891182283990038888511472194521757292925219888895190059623845575757951620609382486379601053163957490344612133991382803259793110450067044244189342467868691406395789146872865713556449164556960235628468777923311293677247144510548296694471969445465702745548075932524048997024918498646762857426161845743328695530585567618508252250324338997880969773790870031767995851539447171260142841214425012776749868766998986831264612643626078125253153928585993241601340444682969782793102952997387239555187531132491797647228946324269561690140906737194743355262195891538131671144104905495144589512476485660278911656833355067514601899249152635473552582063549305342221467658735499754409565524558536857452528835125661985027521000731527813709298213998512081536372785314327007915174598728141846852283718157931460930326557334622383186137762754766748465577829378000918668326925113512149401389125281009386147258100940550920176426575583669522360446819144013718719194214033600113825566732253206977101608952981132130244953144582594483615168668491577235818496924297024184305659314304282126927103764352195906023119932938273551633064587076451703234933283629460388112550575297879453550714922060546490062543951459627211690728240390984549621194550323489896484578859903824864581687321640921327358982706743044338674776648285295864310545201593024657892107084652245683001316430880772396118693143461657076509924447835167720178751838395029890732898581096806521314480294457363670429777352650936699252181188686115030960160623335150357829148788753060018296496904622150565323871237273703474427367068246105385037217243623336539577704330157404093087811876455121313906928432257570079614895487733859905189705743826116024108645560261778410146116159235358528764370375980933470085298836283663313760774542964135003795680156926328941456428939257157576313365682549574159591638947131596406154015723390533851075612710907378790899141472887939253825673581072882659667927122604404830656162812959162739988737444391442761858399464843685065916418069117096647553774634625807789341242431911446558613908801639283753786021449613372257499358755799525980672901539500457458884574434477178974771712566204533477131296046224314563856888620979171510975438085007363272519229500453055204764653257018725479432121486698580489320473605485711010815100862930623160515817438029859333926565601514276246257582728912069672751174440395870491444516204422622108551138206716112011602299605739381926171127611754209564569858010400412377972124852669842646043550304967287279041637082105822945012213460788611975882032595952699645958552546849725116385414139421196523322853728436633074080890418014397395569927456168869504809176621988403174251480822023835172806389417423763700914722833001680748570156806249836910024868297369117869789460157227532503114420227876865196960969884366316050487363996279985352921848185947800758489121981615830075431439584566896008637883094066757140988035286427640058122547572904134915801976284497524847931386905674111573749522567404625881684577956907973709410435139767301074037112753755664631376542297971224726763761549261342568263586539130054297211914683566606120301195387060560332289605679324258225699361080761800893252794630408695175907720899732331446910496275806100195327014351453653951120190099918595567478200995203803540222770995582631944772827049518319065775165176411429548596583127624691773185969153238283767846762284949274647418074085722703326659733335495021494609068512337618992059251141676254828361111528355782354155739688332992085975953372024565288113499764276902017232216754014070509102528362623486963992556732640136041433602826037340794078184313075585103599405353256099742098160637052522047573638459267020762367353503468411175478447594329909640132766356427771932443335998053547175736666576481957396832148034994964715990996665020874242892541287419960340742969236212975330974344950717483355500215491502179710228254301124549888402363374760646902919827246765772692512306783375618689023188872764075584401593043949638671864414855271402843199780858453953049223341390770701170409079635826590406880024487878519709059851127993686011354134792651740379660236899895916516622844426833302423642648644425339644350680403262022050989935272007232961229110757750314312011474754718338895491441416818571546082069035186380270180087523330291115178788714129198820600822883995580967998391063622803522311604402642847738711085595397298023796150182065874542733871205790796109996152803285671551401442294459797742527288035791810837610107528857491594780177905337931641691960927227013469999093242713520173257804645001422798821574932847556460602743557248042225585665209135402500550120628235902551841710563238324601837166053969092001894527924457026843362158886384726657952101851979422354945631564952406285517264611954775488942365777854125556170991596003522020863246233018574815350407521515331315090233952382994208210751502890093154136041411826252662303353426118023759669460560987015359542383007353066275832869134674441741023923899488240741096104247731074243428560994031848312385601494681305466211252733519424292859350185549914269536903097619265824323024058455658949867808161180353799236881873151784884337233801831877547029336035202888602282820453379023735771581348670956608862299705879549523514057054601977360303334387273394484943500420510377436767911668283247448917620677412230493168749867077020653712447602839272775512337734708670115917775045531022719760639727676483339073803872497940837872366520593505366386672783750285280243476600711901298948988071757676662364691829178071979912083952713281927316129354056307945813815957561569299091265725971411435550713303164589339506150725216793533631081217888327778484235227366463135785469633490568396039600071345254568704387675112016731548539336448413383262604257162924092252009789974324404644855768656658953897478905084596122304662072930586300860992702652594196073889043513794951561028057706632199521265620844906968742081764673057662765384090988662758035557937496994401524124377259841050338358069485740944126014119782162975764724112497816459576785778047881821236572250395386706667832533663290652065353582367832566180210556547120816056755001446909465286181507731840182380340988798274538626594975404534113014487710760653708485702002981276352219020945319605682526198444421668466349341937987564485732408427738392156225177333664533749708642487596630116784647779721935401234416324039437731798557216671085687601668723803810867655557248525106527822005639243245978903666167497869275814283817077605098099138267527038327317039003128735364223847736331019017688951541463036549336424843574642813774106394834065424136810818780439013832325590798388496000044587509369633012570649206082102132140446936477095085797363604980449290852124491735441108573254948574452918658747773965370353497755128303420424929462943359778651602964337560999045851293223847638165311953034430572973767610726845262328143915955867811499845013497457539027500217983326016302895144639373742329165691512604755876327804526130706161323382863690041790771022166234916943221655651810066706663188888185381544672513785210125779111260305993893621605818987184907501732966220782232416634940685072997177599998438271470071904747955604456473685611186334067292840887948774538387820218986514320386225580383656133572679681057002777464356341259441710092329212832756920054112411323442708543153739575600358231946040752155276715163242364748973259890662660110316824657531572167226544005846303025490634599691441015007945813676842188436255962069675611411386533071969296227050568014151192739590914706982728130366589868739534064723259277270077333870625238495676280261052477164495568245451915585159008371394594670622781322221224842278159981076533142903496760665655475183817121480117832620905691663919656425467638617325671731329030489901225805721071540033055907419537311306191063853632533534390780587363346508143855485427547950634878393356048358776886929009291162250350670385214064364787334621415811702022260641920554834993272007112742620801307237149080810642844463328870847172833791630852798370227885388083895657535868154810768925609432168008277055745989706591356404553227430507958567394813067937443634588636024085497351435419599062260007059470473214298615696777397295939299269374353535170089182850555693796964550911071371127692413625497948400985160191792131261911353088937677727020442428812100120040150573054513916586823232481521803184917442673198647064859320219374711224835213562910930293549615052942062944452167774400370639671121405509110170463087224189428495931625816491006222703059534924747919336611060464557867764812597359313517793397852973376507863223801259652622004839528952999393308533118689808278191803367066881326297414846858728418135576902162116668319353214551997902984802491332110555804514492713019842475810980785869271894495856604053705919794132972789267597812220491515200980313571574081559977799143704396107171940510133754663030558061745312642453118459968581172686810266778285325109132897705569214091709944488541777656004234891307886184715599127765927690516341452719726818224766829690395770843092778476182773460963447997290958595362745350818908386612007982992644141246972923496707296168004499477351793401505106090544464612476926403283227206786053980504047741682743312809863531125002601936243061533333108073615221541263277507359436735279930436936389622663431383496728097576471401658862795632188926571595177346958710174651474340819073971009112002616715308022687362801565263365813900698107113297451786184789465502671002902964520301961239517432765402749776157090810625293537718651107848369359959015921442575881300017241252344630293070014068772958904508679468118414859018770001456652782111056348048724713633605216657591720742190905076429940205805615556663072584060777243849103178490350184106452587346229422340649637957129243301403853506759960301618885604171860613253107119169801364680628898445087370427093860471438530380319145848610848452472309508796900255237889070352872842399773383705112558973624798681037904332178720563085419367314432272648364984901074539540448285125300069065735468450809376282570447334846198487939505829304117799658868829040571075852338033889575821250619263949662862305317350263284767618790402179112790842448871762184678919453411678266838814218428434769050467649775093485979513315403030632284099097776553380236621305128531345093938533927397578038872187534860370446632823294849619442280477937223980281714247313308542086267526522026513154500170604869609477248118300734890260459406697239402565613483518117796318881821177878352886917719709224210549780641352000595420079187061878377670831851721497086151120437475220279720147358260768325945373562139302831680064581317040214947012802265787225174203183484445810487613800281677621518176915444442827449304263277212869324568581808743104169747103319693642230681742115284469943133957918736946164631275712072767706816958176247421333441460395962547552823815535997616115042505598317185332408938223256660192349790519172750082459809415720879498384672771624030258828658963534608037325623405334581829773766958014456690767026784755528244046075772554345667439888974483592184394825811193267062494581582379558047121125872958072897875370338678839308388938484928560152383594112344923994227810628440751484235903205578043928319056661722043639878607780827144842271102903575403168798328361212489268027314587769121016188812049131680059836248620763500653112040581351586240668968437558332815583571605771807313221886870026529001967128146961950384673180139158658779727546188068041674560564177913868224098507701952029640682026013770409421921794193164579680994492123368802703086841369733650801542277178796575338370858602340407638630702016936107299827693766346738532898760033398604530104921306019824270996275228081449357737314113363146861586964261766173664323978778879343132150072876018649110575173574861085154627848942114436910944896056000389795157699013921231588615020532097076900610437110211634611563570540264829647427152667945156650578091499977712184820086260008804754380320974810452487159766345349258821974872292979742251684717846611788123801929522753619847017006834186397147186357476269024093546583997029662140476303247644924907796656412908792749816554757962431767047714291055547395537906097249557178791660647748145643303184389028703264936670233662230311492854556319218510881653832665201898535012113669081690867177175929626499594499715616162519731997033941635954129670010030156324069554888888269981167357597163292326289643819573423198702038580601739086860427502260794071587828630406829487550527388120100222204941771327146039359903150886229434307754477132802313541506203797008275590909540997417717023720772714304504462904892334664007195888075190793733583259979383664030253480178669127756142433373514999750904370805457371175081354416328917513246410859544032490912065586479710188812866734723778063303106897070566214720403235437602052768580101930414440419438171951366014016526722656831395706222596301547265959131375974152392017913402731140944325148339981791642269163617664292661041577094409490523080505327022224870974630575493448683982766893620849713438233728956492799954005425655548654477088799551868469926179905529713153934929234160518039457392689997582414078645125796616703188829946724233128157655635520187616161947838800578949235013079599628449420023387630420353129724499072750353531298330452566487363875806987318292144939679687456928723071528179295889716220576562650390110186026890481650690361020552811524963661314738043682673090699735764369176151876272581711809102555726243369591208788230340853061393540313001085281507208733435456608906539851128621680905465093945624991972697649029974102884045622631218938512727230975209112867173324088422589111901374887690785597101347210577709449538846167286763795623317039939126243755357137883017488047402489758528119210174282781522822678675868898540270717385739034598934972263646148712133054693045585223242451757599053453875597894672066462750483522487875442683535763326773846718565371165472662947975764522138778342624034261738850242140699859715704723051053415306037032883615152210271600009336365207931746918981974395264989785171820592923914750471238612743836294809006071337375898138503682147503463722606753301729614161026882880572347494772237505530346706539675828914627424572812465494939181790760586279841028910856575295089847497542070847526594398868934903861529673488356629731166660491628887964658597566668865085884783144442829046313458169782473794873241504924461759400062650840162808874673923047076142196319883439061594084953239371644443685292805315310297353569861470510975673224799170586822854124261111075865368272333442282805707851874000307494949062994631070647661261439412288617354524331546908322670363585738857219586309385086191421407312395487218535957161696479656163378051384756856258266675608219915391991123337954528322830373014051661390252441465048889660516306483145225840476924305827266819077746400827725072346152272382900421492389646205771659145686390613364952316532579835749051289958302946338460194026531251324340798420934572352657607774873125084753310078811747143404143320957720806022741900501106078388023289875339547080146540389989601733636368845686951014447327895174622248045752610137958209305787724900588368477968400106583443998537043589762194828779701217467560231205495071991429818036547892669822086111919401290369266278328732715607431647035368978015810857228002389498479935918385153850915185422865599412100415702093250381535433683084549098039425080932940408741439187360437735794518967298279584562557057234049890755455552130129242221101252191347411551191628201203991702815919597722485491674032256896388997458506071561860839639117118392632821621385884282147702720639854020581788589361863347843150841349052748627915218499765252034128468013108697139309482306588810868975940885644705519249593135674445685718787514898626375801182940896907231150682006900065284244601515065089000455556394671273117259241100893803536787684589677560127229957279718320177546536386820078477086721356073330577430698700523672433145418764503864711246242107734790456757760827349093856156493169484281383007168626912927280819019134948325941040579527874227325423094791259530634319592177259430030211257585708095338272552126787656415659586450259776877355665536220222846752741582872713202681094215656541374655993956803025088094332780488564906495400818713611337521417950893275684631515460068306443890978634966808948459543034849263361456810216955260876171420207655242698923583045114741765398017710669742260803848950991373586231720600752063629095340213803958066690479308916586011113238939159942866848102245101537878096380844477416993651057730413268875601239203163112833604494783740030055359781793045222311638836695386590479747337988124637030017616257651893251867793480831565420735893403674396278546452191341949333624149548711724262499576055136420442617241832372139045030196062560520826590900785688881714138054272526731950777909897400642781249293268209167379736229380431565885090530542032955711044596410113721042180291317280194373499751118051454933912222429245818774948432916703511166846292684016545813148804777717906595579235948566075645517999857634293059498693285028479705872716504540073206117906552740465567053996970610468853441588505024904105875612469794409410408577216853454051094704331037627394756053799743604063125728315808589566146082953994708142023917799649768722428793735043119566321319828688089281602646058437170837916818265069605462178208546913323689900108038564985474824518934861846207110860599423356672583270518255497416059207267491233570107118976572604578257943417551957731138168777151936717380458720704140436548799151320656361876562090021400899500560647724032506688564664832307709940520189225012137156382903770426197530980634891513283430206814693936052428363170873672759142632177960598128570675071716638364992057764466191479902888470994881260493398168145948404151451674081500684664771073234552585007455450285949291018780839444002982021998200423605336067468287533675584644064351354615726989577089950653844055621973281634248122782085089936717329175466960636390961790624676692955475470388713684281134023520301083920505449732885073458917828361778774290644724316989167560094718099950773261461724107794961466679446937995863171792600752165634023000786874863461250074741391014229589545060030877427265726688962905433271883913330439423831347008340898379585447874681710300777180306282074976874661235921568801572586443525051144375899057605653222599541614500500468230833107819373708270567824108502896118537507325064480874029001821928947968056477674066761436578194864709949039290385149925833344979786292824133670518422839661103153750684999888450364056196988346823808062123069644780652742926125590829330994007513338148877585898754925146032924630002976543913360275569112863505723782048377958160335162520772087808829771538495501188981612224585103259143447524265415120123969955150367290541714200201875386816575566716291498990196847610888055283752216915593831853107636845352499476148171688811411318912617907244144505511170149559208770500681472252252431601245112914385210243274842759151129011302898209397930038688603819473631742259680570259990450036306072473928674922737705484103307880136075521305915186443036180744497253711645307136688400238953796920046332869771817441469205894732557344740976535641869104472363191665358885222786558246648559188375287087554220167127257102328160881112282166879097556379030001545143078200637905674276512864090244334526349838120238745257553890926875522952105960942984439195997767304178208276933662428974071708152752800289742035112627595689050454137007169500034892765709865016228125278762100716039737112565124673342386779738130073266018289831014271677021478125656745397323893319995119301819376075074371446918905368444354876125798802769472041521492588603053197957767190314280737768958489041272681595877731755190312581067433705399094917231928495694047683290264516216619230396324787574101324068331976652071122528195842479839068780230736611512493937075766180482548757195943644123198181130283285678084281353718469375389674863354533114911158788475381107964219908513210547318931587192424009765134416461962129331486028597996947132294525467252282680556977855045944776335103874887409342766150782562449348241050694087334866625744772638399597970449426048011088520357629394645258110149748882057898891494292224316793957281245694788945875890889910371094287349924498764661051707452987955911995243096715167449245913562536734239308198537452872925525845613578254164253708753167886795753693231860396232327138613198272860183358312774969485921617266356514450371936287337327889875971686392612693672744941947482139040067998482501808714240499813962288167925770665300431098072820226234190131253218196031797855103751404396768047193995452463766251321519516682259514318887776465882095556632410309681730979280190078013147951991936222408069254021075557436085842905376661760044235905402248034328652300470521300043907174971594537777175255126579332686964478160845203470437584596631026845938406431201341229674534918236934793147612981928358479655481054914836223729736731436255103906967220657465943897211660947307645034609716477622287811584970088516266173393977240676941370637006239841722650507507888361726944098963965969363395386598580327063225006466452736866052460354761310249949366185311401262136838442226998625018134666126764423813095179813302435804243025625167212969505891907029272210705795482037710464400729931025216850266371055334075337138073468498979711019626387803748672970079249871950144016853440251687306115426479171100303762017344574377857764229583903003573307316369391249914264263358885220903785643081012869144738039580187170285183639655670512226155717739376546826252219000081428983726353993106760601445378426990673942115557789753334042753278990673627820960800166910262866064800704794105740042833377930326206825480784492919594449524604381705270331132790367653002944404666653877884349688328180852620119380208618871018290180621515709175799073241022908168369086575240517260733824462040661852864851278693205907890056907735443082437592900119453068847697622219053665317614082862720257339751551474731042988003996083611966179287497612412669318735871191457025077560089449359412595285748955445233447175109782222196439570914705932627161331622458516904240827561079546274878338162661151107324865497605232386192466008628280989127113842473031323968196683006387453620624658157249323270379039950243731593468426548517416081727439590316323376116761209731797767537652496352533572354968071115169476988324134737716412657803309897427883290996300954881943675980708651121902576836222979903882767357242660064944312192748676903006838111635868561844431317549295658585089063018792742582919106228446447180567515416938751066854044197837694369316587078625424362241518828623617651223870879458379220367910853472006414436794583543710604464092900414540266657362023798702684177775897171576368690959394032697273098099146715144944854878346809574939082104990023695524603672303030977172878138465760925419905993932530305051032646665089289308574457369307197964972239479797318310424223407040586981993575785805733379422843634507269242758891738008136611410501047095592464817843442574691775023279961804353585152888879621602729733699029208354820479959690114893477765890442801903388812376355272039577974172844557600477518366925601278650381621014339346813798282593930026068469003272031768909144820249084556563550226963124113367830079579306788627858159924118733559527368012371034801215853570569117540029585586992063098455214727284358439871439400602991061839816295000119214232558064640955592379044247698055976266218408530097244160931351819690963612376412775030129090883385584420225151299935830244812937881819072464542782102330814804850762493226095609046866135343543662252305280124012850890747236785092285014862651161995590146339800359556883459734707146517152439586430891669631815040635110860723140958828968503864996494998233472582806503589731483188793472110112737590529445530384272172840052227338066188353060667499145456128744769216295047673240157518084812907900718701498298444722410099482235587657518278334945722168140066674090040190422280246831858392172832089949750995003409878390483054280244605338401640427035563902254344132268238766192674947956251667069294496037640900510583759518833650815368711739065502938945594379656072978423542546770767787431012411977965912737340127993810247659392956017234142351476337143004194998467189141239449252459280495816294648831464314349009590249305291259585781460561392216398235689734036545305366619617317408042762765151830746396698162042723724316025469090067457059490124601281331414463870344541687894101090846312687600993412287242451187616745465760452810039766475440916900467636250367282066980881564761179317434253392888509969163418083060274559519556728462266592489523503191186169018785618149379561782677770336364281078009164923637523438669302892232204964068050034688241992640148252511957647172971530797022566080162363483500034499461133749994196799071750560813761420313992846378276918352541318990208641106163279994040365860215149816209595058463636768581114682112713196224108655863804189028196131722029004221989692345792217662969718747253929654701260552829468254039499243517776591377178765153993006378714366349698003223099280634476153684867786796474080537833639976687330971599286774563842424762855918375996191755922180274497421066022525403870393328335861668870550766488364003959820026219119659067396804598210798132183035546846474705135320317174326032499120904625835673139368977228638126013503536200477202751071266161425752642822295765557238114106297598493079541852957998002747359532776660193692016111841172782206278233096102580649029872885924663091500433110773996649337179862897074837054000459901563813976885607090624624969804485396401139853936982233979375252062323125288220432888055035400022010103395940662895603920954795603483001655795161755418199783227990328450250987368064164876687333558250453817480242448187586458755969247138361706198353762877748011008427214711438933761685472322186472934574158133838590778376712787190729932554346520848805147182996679337274355015051672553883298910699995003561149529531736542658092430441469195311081013312204215095522063925622256992713656647684477718750049215744544998944365777780847651791348190478001358447620250089685619974374287211266011172318230592013644962787542684210913014870105207874998125858478354665020145228702298685601458530560155095764560083472064372294925790984392129743608787634044252909001808355604708147189302468287357524905815227324960899572475884254607005430748044678256081337736260152134142841943199534311733653049604748279735398951432964058828093146710571473380756429666075780148153710696269681723621328132124317910955354210629235540313782530054305299238216642753192632646660246591133754083492398091780255740623977167165952799197933991006607191970122884268465229244073030196804745851400837699139435924014511172167969633922408984385041996667607931987841328983467582237913997464784369882988173777235182134578916127047215745356022194741418498870508829580731988954618266907451254181334404750589997134780400583654349487785149649041383501796087400926129269034876212847789339804417176159769762208915147179478909573267295154991833666061209782523996397081248551850321590060156695531428587516230438095262777007301916396035985153472671812778774609419617531079059393995495022417285160992133911701144219762347587435848220137593593658068637795750614473679086156817937276203464471995093602800665102564543846640927914048119453202335472944394470535897682789140785296597450283285498386325379176657145989207198619369986357230278976218798025098711273217327264877793860384064895226362162520105530237234877865555789115361940193123096126415649934272499575501252581664670766232139300310145718959329002703427741396603127577922661362148870596929003665449704798997686758695629006675613669314222373406556982138893603645906326805461777698354007973274503069903769656662607587904246250145394227244826878423052924249882515841189476661721424494745716077920078937013571022930006225822052508566713203013303242944350883294638809510985197269713452433561796162313512883971899093759674314937138034514309589709010888766596235060678219444541771174046474838865585493524937533662180602472174067709567809065178551246440318317690452388619988199203735085****************************************
655162089293615165864841961032339374162208679105713191121057704596747630126255076379946587294762765674108172078408589991357994046247327629251743112565516849135112573521885448550866031577893643852869668188485904329872294527683984497349375500998641677253479865530851476577228192397608301415395606141289850147625749775935811486537986548668941193052409355869268572683689837697721152096795485014645735573547849985842385452340772382293265565529365702446859770138442648706898217686980190625390013370933017100045525749748289576527286774052060454147467527221412796136061938818968961262071052045801263484029692802422602846110371896715353110713007074870942508451861748249774673282495526053001635308949298169020635197912631539332889470813869526424712655703144380194064413840871265964397195419670821141343360291204057992278392055744002803941637611875888806979954948493690549993834065979743224954304292812694425653041544265998549935106651986305601865280510262375567603703816509667721805681726480716560803076109587689337649402295708954584942920616886865510785790866224588778451667256441232746505036265081691698717807819132824372525237058826357306428303793074676427048515741239738810732621984405903708535486002622344345482541595568876957227969599371484490353133803560443973899635108137915919391541854015875065436615907108964600042503858351061459880161423266770435450944500415890148847869372037636510208643721461308596365422854677943241064507055990442970996183857506126952671535555305724990682142773031527401536533234549529150950708846599033697434137177830355925538555042003788599971758649809595946216368901503267508438450147287637820981548811653813071250369973505961955243059915827072771740472272378100143304987159849609778177375201513662816779340345731882672230490139056856162523649938729261389535135915820222010370979170671418056983637217167342981786399328951752486452385214843188426067545374854039151459401814164121029290303362845953451303875140248741574572409844826723481507261640705305132966264746072087912982083915523406836107464699534072413143992639498018619385262705216392840429889939741717608188452091445192946899129150566519252505379715929785445383300497810864532105127460729253301416435573353435747054903003710437813546257194570008159450424710836425777403974997861194405796236398320560512100819285287001155353025652657003078059459037135318719296743010436122117947567990935515189704393201206733736534177708200786462576536740330549732787923013004077331010667358891137329642612666683927492107045686414175444001448332823569131574264821813517019962141139933473829825683178344312646046810135191429788442176215201772068807612251754544319616552164512353752457480704855815318867479381015982862058737286918503089536116966933253908432232347757869531269758355201032154089042841521115810586412574443379905292678718704046453388628337400015986638998496673852029102242679429021606915083270430208421209475366759558378779500368498840287862841875084753291416882552626066396016839621187882458997152572066922736895620068706554829557595351261155974221272537555986334300365237468910967371789141870840614489608258588958644889975114473040305357195186910973893707718542917294589445856865133114464209383439703636243583127600218116906808869742949473945632456631205453703823318898240116522492017057043106969868913759929423334931452425446846010419790909034225133989276166868494917551242028009629889135362040001386658565371666750708027397201370578100648279444768561096900359577117521996992434650728657384878622853231823825327590553530447005673724807330575339566341848213519264411490608433951613125301258020638569215881039434743103323244337307794766287903391228764311985402377979409000874249414395098351353768755246777923824612318298982891801788457688377044573591145701686398996836500301661635368462441171189301794913543043217431950829631063617096066932126463236539711008005289795803620155721371299197778872726857049219698695557148999317800286791865995124577144158665301071105314171694506198278202100694396686655951315436111693172538123255730607231025073178203348122846330371305721586979800177901952753671992924334777829713363970350325011954587067029875388862538182723255110527457120876720076059905799069913619618977420303849218776517497378142617930401962098523465238069075562412337861047291158209322476213072538269477005929691301623862888128514798535305532453366640732840269395649912517227714766372078175026587050323103099383106875004047968678746735416498182311281376445138104112871469565262543101728068948737990357917578811148447711466240602793373527124223661943915993432734808536625138058003856594955104580605738764118299694380292236104294090945283539702371739638542927006360194952380254230293131435649630154612755342490977548727153357664479353089609627085100120981818349630284281244102988221524241088575380236143342828308557282565824713217318508881684716080072456057543844831736151648200342498145695589107415978248474155002558773448860162315969890358454801109629915399328760506008129884677492618711989092215135816380249643990375147217377038324212548741058974831000119112012591292680783085995499930826794140982479844030357872195815924811628294193842801702149130458560838175712299629933034267998387424230178174400631871989171608861937783557025055196053885342992527424901935786803157894478687134838452853804017966309725053781187273213440525845469124373719718677863806408919347211923932063332252320099571624945176374746572605778729375134757548710035162306038764664879912580320509496256200725244869384815758502530937894575227209645966093704482737211544454943958018914365469234771471130900179585244791710108641707780476367858450730562451558621795393239341475070620633366246562156242631433616524230459482552159145599521589829083894925406856080998374881659270587156996217704062565874524519423559907374182669603734632954824032741972508714434838357913116135598596817985047071139385758864127851632682073541032994006973203193302503342976180163983114009336637440714923284541507175365770911687588328284448420133616729093665317983408895298868139533735367805488823321997174701436083321342735663944704513010600586731165239118610387490391661932903648933764739823253478427859282793186847614035838702845540592637229713352074204238816948282086099491775505575196033908176459911857612525676114925229057805401272684588172606469645831586602806675479749917655484124312247211270530005673099517084850814817730475498560464279297888490541239211048510513356587835442454261329461308536449616779712862246200321901094954950401181856635660185672476281406526059308778248414850961825681333878887028485238160323216371181304602621511436947267379152505271950765642662892108652550827551612906393089220128493214168891828778688024049220452481202156957852861228699949477167442376272179474618832913194175064038436837008497203847885600658945818475753146910630374662511537377814528855116723132374751870191100588293469711611978632633758571822188053670203374314384250337115989044908126847081803125070727647074639031167705071199083681912835027045664806830733745758717522075527191698913016431483070079174061237988204824688025619831915457171034352839607707819878072967094875150455787128322058752156251398008996208445558089677552223352474394174424792719645667573328493820777594581284414068209000783347274040588924978846583560970242352381861271733002930296171906228518940325322814051660515622132608390041584406721265207894069062553422763821405104172455012877236882190704435624717450732924238371633522874495803784384073588174379216767151882188382573644293514423074578036954059530476645043645859854636901466540804811491840408121164971408503624021368438332439633844791780135120301675244228882918129001428657414584162254040489633926200297209391361591508174686359928339109640527203785569780205203906679401110067589604295712525433733780060429102880578635068545097972015957909383867030288464297802633916015366776738118871233794789921158884879991612450452215642331660449075249459502395047664210274266588799243391673387370551606007491260034798265329064766025445438175128025320536821167098186879019438057341412647116534681035872295998745741023379414407175778502069447239921802304657604331211159963651602968154845136889929140580696932015310013062476871239154410641418243431034894466488706784808130027536239131458333010528920885848506904753448490784859121634491224108412397107938066486967038061906291344989194618350729524037786660082355184760184564397748425310957222889089875866318943310233679731776063812898887691424918038092862673713433382001508130342853878637481113338397111199723831926192813369002939474560769700137526915743154880957163031771929563921040644589378842962253787123324697696604427777267903584227473671397318784083182095237645936315419011719498796637392338362867017571606184404924588877797487263137322727794793869154585523326122975264632197295361206929090751992119045154157366630544820487569387927251663562898377651939346457679482062363914868414550104050454031783026232270926576523959024565145926815699659585674635726654283269661898328905413426148570921097782337150080886566762305711938159660078818772379668448371611572125670881473724184304836088830476033519213629264704042621835005049413990034495985399628610994038782020488478328586612607933856352597248504917328843287015686399583904957655858720360437192822727406102507529571924332309756330135462018554222864388101778098306573560154286424830389930318051237150164587715115218508079933806902490057469179585389677353013605569091628651291595241289070968037252286108941606196235958467161301468029022589160636866269922616244807745863073241866729284280859367384795001049073500247652965175052518209912104801003420210149413405805232487203658576135807103145780874949384225910348952957689591183288129612053074102330987693122917728608390055080049043850857785498914924174885431272701171761902696781024609871470937790337100276031248627760022895301599587754716671356397693699459774163461762522760180018109779931450216319819622590257678064037715275256379173838827008776151134921165345189475067914397591969873432306488307987208431949224006515653996615617276219375036013531456912675344105509396944741720624922757968416206642300796307189644889916091832831347790943815834260531406044948829324699879081051929044225838160242842397395114579662429642866578919046715778575780280129970563537231854118328852345659129525477993182850230845540035171193679976034701215319536994117001216218782495521846003326763174871157262924804632103468676798064341931685778237332170011344788297286946748304397047790313223198634586943635864941173086611098703229177058758524521558636522244497614171428558193456916173211053886653030440022950609847855076567482150958000840108994786865645720470483223926210947421860092963747527112610798530300561584245473292351352746584750589741849336357153387479516512631746381831979404751826348123130852116167006192238972437722408233602140564739950922728443011605572778007319863630474068999683022205342584206747202666402483585499005914949251017361829535800413378806648175277703809515795343598095150113067070785105717854782819983718589342355058847576934151796462821475982121911366520018221824953154604459950456986579104855092341236328808022839988063524307604484356263327034689291301516294255480721591471703419491217081901017241765826499058673254739763382551074597622713170719343739947059279203610375726290284873614822379589511380167252974259950529794822692996521254121358664855765660752131735749679402997361869052754197652315052046175520477617016625288213064368520340302806166032646786481891996830263826884885702467801072763635768492794197867564531310134667003897526245691823052423675179499186327993791709245493916635773941600018839490587181149741691661452949183963660125976227267710057180756812667560365452939726062928724271172085087891889319748007116786634224641293374154266482298999983486288027831151783228339625452806819369565836274185722608686096806777129739820648525854522326135427651969748882517751204050808736877332290854978456904569365124705153910142051610263720829806794244261584761245033052156918269727802719645527511311455495387500154105392143252543659495060681044696381628160676161758891989666995211209678076581630514508886012437228986358720934257096178337927444748581023267645652664581925185187472823710245298347999204425801508934276568087673775885741487126011236573819654551373067077800886368046288136748674780133866227512558273403700750894268632803851582240512143046857606874841151425433589770983972327532619091643823259510855811138390487467761991605926708988152193407591624525622376013152323485105245327769167332586926647207616412049077029792663561388242109003585983182504778301965140083851121941872693899046582427538340714191463296264206726254696165003794660441600296011826627239230039153499137230384602358219141875172365786312861918991038163397742515354046085224070418215125968811324307981809398332701415457811321907726454668514012300372661074400136274683196093144643219344133828774320865703561226580249958308329576183421148003350398828455057550213301207799000684934336177377174691832727495522383400414162241596418110287830742241485498924143277798130728306559961466437039163181795972577067539278956590009742715188950450959205353716212408055264488764925684065159553900129059676518061854303920693682101922399589006477670062328565674519015231234944655612176463063140853184427767417948766506054758019374194947924085859465042177149341287209235482001016480796240929689844099731442886689581589638593714766920547631415407835531119288298384559548887508484808815935485699972673197134322474032059466798684483648184291491961005799577944703150824153034308161723019373770578136521579441950254759562038046639917589044680825087448019914446744164977150083430341025369100012374616590127746177918853789256001510627729269722561347159336138890857505124179738972504410321955527955876736829375760556089035273113334725086706207105341955234911137909118587292647847233428414610352826572735516273903396495539504383878363161490798589960869279167995163408931408102382826509848953370781396915257100337618086627353320062133050508247781603084098139023451832638546051651455360708314973126762107405632360761376672576992830052646312706509102884538308191643912777919989848016448435159387254287903305871332948819287027058244833875428792439569072310288798759042924660604250006935934691200520491722836418665245472987669699757914705115252468193793171976225855953114418808495521690298722909823041504079349158246943980349281059987517669092745414195849862880769274464065946866622052545354387830320484489064249655555685150485941175430407442045170332665411868762128112719426171429513388995166522058475982490606173226409036550537921941198241714759569740573139033367494692198721121841939721535210750672633413501293779554725400836588894483913244324795324687035492564611369577633290098167663981045449595798751585530695686034709557034174375020096575817758617783689459958714623030148722434085287798941171009594827431088606652484161261761775084914959957534865701154666958805615139951595423633054540977808707854715718350748055984308546946454195039094523868505270218592028753763948209931494017274696664559591174945460791297083827849020151084904160032579237748965087959140191004909634621057883865692088268922516897194345497325011240158958089570575367435267754281836008360789866906580701257031516394665330690529051667631214547046572581566337293148264974985033249394212719520860873229466193289805908023142411194218529818713497406445376157052827436055103429377112774017780757473405899539932106166534138116462458334648435228919557062914731576397537127694396669561466402169674603270376564007569337226563368010763773197494897357184356252571980350337128491036382890557690818926634989596827284114328824305803881211106095006852253998117732045750543372303496717162183227504900212210001398451566517837664259529470240736720882031133227362839554263205090294106555625826039510520965552159135926184290377095587909032747899721448208616052220900487715909568352586498216604584330830431826391680278138404080261324292346943891234838997217919262915358229541632705624400021615412660516682568604443987611116185855165514178143679798130436747678414971773024785278916832322171152523171394829292493467855914610840287150079108072213035524100056612084924922787432105357832327468294357502357400430080252250639526506583927160935597797024667592010457235353522945498693117020257870415497420144134848198828496772837185126012194082403845351882706546189504938969070171438796539625509130363105494894428876824289687870455865817933143614313907272817256427055114657288753508483064953587517103211680956372336204386626823696149781328105178555658987011649851591115811432688911631713643623665592256640312696019939727266432743594722907213666085039747629179301530460859819730232667073215088199906885468794207878821886222801786370775661575626089366787052697553677708817575942534149090749180199705208237170503106837401499400491171893300621359710452041884710087196604009421979823905628379474540155829081839006662008284706509949077458949065470634953005959832834050268982566021736194218054516696479951933892333829305852525264111914855079519455713126484185315705119125229901951525225975425901951866547936656600790530034433727371166286879903099130549727226134913872517864323589425852664815562673253049357347530108963304861328382661747985513960900450673666739867980189774243863365918647664187710798687860907716789703592574791336313387162349374438286564957374050054033283567459753477484210841509688999167670902839904159432723742195784977625082867842069622784687447209814464616980687764640684080753895480272240033804121899559138196345005674771226281964872408424472578117852452241150358029225721470312895755995988312720703346547653657869473210990438453036979517809767376397693752452212562745159396844518272428769404211972179127509938552115006870954866532828854180047041057032735627484414517124296486738439206778831743147910383640902277182880360877907678491076235414930852612208332347193137705364516244392252143680957712874927691228421790959950629386448857689176881913307311765756041872367610956122673404762474902417969363894604094652751586407380474279084824260905450884748289517081779716538407847207305413849003983042430984579033531612766526628376729896981499070874970873926108064837465071841350914068865289564832003527119710038903296817488124029705232489784045524376223579374727027453503634255168054736304673872734075814970340175989110236511989392637002071657962910529903002119295383093974485832940285228627568199281499850432106417079332180082637296540959109631341579232657946405839563075766833520932716490302353919877975970178793237816164666572356552846819003052101407927568489324229833210378958515358979619195482399405261499214416777137208749799099373374505776500110454639471977096273632938507032589908429890195033484747536424750292595367780507616132989796690348295902084531089537025861313450347703577452303283312647097354224679562750365835937227643744196201231162600912440801741369001369263966946957275704082277181320736624476151971753370410036485584211414869347759069171906806592417163157867225543002415002648845873196467909828817172035947889226290883814267623903671522363283520777563797661774312293280053423042549118079192994228136448063572567940294477763872395733505369172260461936616796524102788794551264225157853740081664079769390461976572836641603318993325901468344406337996940790786356321780806238135272062509742651538796869760136724808432036197492113437415550604250488162220512353391239689814311054944654296443329482960526018185758500193144824261061348091862470720631703834195935305860435307683222134585414443163186837678856383610921154606971388380332045975734467535001602744374426427059080114539370323942137893802531861437295238943978939265096898608455378730797530764804306647647736330716383643355074158870190936949855811070966122312985125521072873635005069859913819123063290339188852772731425003856970632604475622618570219175793204136590473498130900403180272760332028277380188613849744020469688757126280494160170710667400692063701994567128124122195091224986875411498652968125604465401432385579196324982558189620242301892653870176411723967307388951311758502391152510467524643626379055538409642038626695206962383321603415918152058561249122897584224624859920304038888942909119425354836127662900486100166866201366396977309090561230652091557886813820221990211482238025017901002934419069325154489799513037513625272717360538847665521480676980264091086810188145302729287119609587156192085147103384630282564713974806945123498292607832299176089044017676862264080443796877405853478492961651390520285097653640339266699586938218543126711157216693396977200269853993025279364606627143787185333610995132012554745392730006082560483217201898228751876564557139757228945306250995637145243454457580822174097991735486485947245342430269990402838538459346469836665516728835821470367299747245221496817940054201909776284109433668980455090304349009660837014904048541799429995130880663723071319138191346310641535381724713290408720421038029111314422572460966358573232643619937240590588208424914745718628980508859031749009267368836993622484196663807668896214681034693125263011943180635764643012082410168245561997155902202941560774606549692079930098957581721048118971027758124075014057573187595481057529876088126554947613678045002431721113410481690431383735829704155105462617984576008974630579994112800880105407979023502527625822832192214082895099167958818500084768482164586603386347635914060483418007167586190863791182565470526581490487911960451486216617559684223674792586434945618326194861009247550365709187374510695248006820478089379849447993561157383960754574766700684667851490131976691074199867200810397506135896237127625190874753381037988479847711912994160581423386868700406244311629159247044910766467428651591450029184689193010929626568624011368351573623011570495084566366747990926859911919937024049253464086973802868232688755350666815743624149130295717231547458544393753792052506452629143826999835622386079157261578784088378731353324457760839324493710238471465259296257145582771396724613988930585417099088115677281238053983188935581631774515384865902083173828049819374229115966714457320300346958185077576894277438983254720774601070182401093054065146404635675362872332419089162783108554018294405771580434143715474661253088122972588934644273428720975627540370387630039303702649159737403705802503879557059852434278232920776703952416678014724645984739105806266322608162409348096715828439467586997305840902405180235315017577588773256728028015981762572005495293162855266167320047099917783932632615925387218877605659701837473511644554900720545005177649111524406882830941803495916442142616155942831169250068834709525234110419224638597926504149429065032107560158143312668213085674005496887414373361907133111842686722807470348312962676133734756932166656357130323869588032551550701609163419311623473202082880979562231774395164254880163273794098711484426922441770713138991401689986481763946097602139321628573455870524491184036837166428101322018904385036468870618329563801694140117007207913302559371763902482518496357660339116349924689233067664650093258344603340535630405223144392750505788775721305894953214171669116974431750135423996378352125261791603948607299755786643626980106041693844412400826588560336450439641002270105236471347157819244316522491109521430513064464383712400391010260938891903480351417880771801174840008358945840893723088164861353574375129638566750755889557009269883651635920968065059282145454463281420272943899143625032014090595848708746882109068921465296439596332037780186366144738765273435192185918860409918644968112880799267270568879191323473239755891433423366232142225958093107118791944516415173301854145479488958669053792825257912232994406965822175892759809123767425794684734662196269288709272328888721182305454372451762920728267707225032200819095200483206811532257614547602666646361418742390564899517478406050937247076482008658406175526428333177726447922590264978682204097516736999908110476267981937170183980521158279604753884767196469116443849877029810287892720748106226361081277090602323402538875375022281250756979626837282273219433853196767954732664113018508616620952031054964326226627012776252598497092799711039006216824116120480331101589935782277805011140442334561083848984222105736071191191054698194323710473138367018058186191078485169014381276743918544036461367241332827535970709737312957510098416017055160063964198454296312385066678491931679605144007585632741063024991586492377096276418495387141674816331751219887134027852983502377241751912085264279435777209137201681371377469098077865318569940708417640890505923931245596844706130670459228078779879230461708703033648057989642418784755038436835622794508144916647294409644195778966135641419923966436246410730092533991347249012467465806838487096848319291951030507464074440991423388507273011946287458391030523923710731797791808132266295051479658552722667643292338462177320441885808421741291737028759294016700732652591556031632627127110569583718453043724532300052226717321530062413043683833435543877890515386865673057132471304164685868823784947632924451482962543135896565163195206360187482067264964279895472974402655921432889237428484541834732886993608295081634565405318339769425498886978923148571196724391604671904762493704541009574653991113039907213571766210621636222131780565070282349107043754427481461860419183548341122138103796989961929872887419578981310663243120827868790240849300601047375425775350349384406132739845160402640425670256119989440565847567031363865012863413218839341994681012561033636104928054897270836600817049224020860909272413836687179324454192065844733511342057896361914135582841371885298495616475385421124544717612782870435710445346236402188320319635080322622201196263201167473269083170144163979660830668144071068145990078666961815325612481415994112016860474918226313734570134307876853035107165116326545636951290063962845072490342243414739923622255348230408180320745883124275292002342775429212012533413567843092870648027577978786611911420174518565697002762328431533277298076914618329286098035437064204515821218912494896904515611857184230975348423014470836341931251094605390294793605976580162364429085448246450281426659062128562652217157832616983964834867246666548468710553814801824758893330000176540282129171563922031458253870458090448629875782883962913956821203553950123695533258947322700942601059380785863713383493480099254245033198845568610208140013948196449905360276068534838116248570468812907396047640687467444726233901691532790931532913751368949907943121693936789614695222228102559879581597317157400470835203000488866006577788949443052583022444986229093040996021317631949011610329148752165940000902624218148738055319093013866311648058885132483182737001503632782438546101606223616589466477483470546833621907827922552207621427299154160358143259859881575300966590628976476885525790229481924892284668377264379964421788179287289939011569347759710906834891963835197759433712113387633707183133241520032793070446036659427124315009554687513046553495493794617864244405762986414804565165249370288804578300440167452707666507093321756378202242856301457752033659993574771727813010933588745656571734962130709569682772221585183215419243615771229391965019627580523880631650673616001342060186466376029720864625008435052180772749506617058553435560516889687145067451085558391184612155803928300633296461890208987954002872055842575152669234369502532263854044324463220581719952815393304707110951880354564214434465215830640914723774298589563927138056669928793563568526232300612326671203669627377870938472005163837629594212076846632599405734955900410387139983432615745415889693144756382561232573615368094548809269612883713578934335891059808935203058687011405491638852247211856875354086325537891313440598996219498959050114397262258450240188066311542709119652185834589831970243416637567462509490014710272317987397162677943379834452246400525810044234278264019044031553155315963898178552128271909241996217153812664882422028606743664789978054327445248854943385710171184056555985278773279740941530065787705270858037167260891147080595997602828526492821488671298883531415710624705411258015073678322827105059073215522878855881042461880314277743018586545266933733170442847377740906168706276023948184368577319429297224317950666159192627960887425030960074027629905623270555086726898024152472861020246585083954873577716741317817824421520419679203651297794784055593701905392298400855608675134385817270746967171086629877614508736617189148611965964273531055988273639647652976059425833425902905583123497630346928372261995877740747935416966815537115918308502986742316703703415376429921394144370161444062957260004058279443044320056811676882268403010874588065734460316730856141235283016133372524989782244298014432659537632291646148636414727143612798628517498328136754665831460551239750048388565693933973142512912552285370280222073436106241880164198595328597244933316769138225126286392941407551127226202466925239611857558779828430010979779190250837634422727945685626218580956189506190126002697958575437363180686392902594868204440712486934824981699300864310430415076408501677741421604056777386978311068351521955532534725542143703953451497831308275254659984949944759348691587385131152516516044010778112627812952237871031424013477669735765781961423620725232068630095629097893273917061381479253809728094832550918125106084871560792587048684844591254054320825821271261972186885101648109876870843915737560772145014687158377385283481283677798888606014208751726803380637403022150718974122975355392285187018826562986886278218064215613201719462186862858178269354574490700805103231326113831833326778414182801793092457131447418941633469952322934526771869669791037176121464667495632478099538656502202716890053160907328644249167641907403498466695378229949368708435120189768418610339607467579164266324388224760952271267225398626831282362882101531655168461924344459995164706842545171857125089728615839416394598001004297105102123294387823013599051836208836627379087751113231627841657503096814076215054231885610259063435771973319723293063673677108567654994939125406306893546154163030786750384174179470713745192083541447430452893597137120220096571077911301320579299257955708161878073923173096050399014690359878016793080210767509820219229525375710277308067629042147583946206748479153672505105756671300362143732950955712585333101416064533549534344848866842293434607162221835517759373953426004641855992933237415933825790766783504762715858431095437977749194342854429479664997339487187040063488748753500487184166476860812952843591316827170209154457710952018981550133518106745491971689131704786221299449669452030075404284714560908270902200016522709697679627191237623937779956717697588396823881255874538121975288863058996151133373716811672581556397289042187735080076598079649545200447718157517474771438368443300631277784141781234356040868412905781823045461417793460060508613183938195841701346777603069856058264462582321290868539698019799653750801841620163933031633522546230395846242309287607820301027337559081960090151370978866922754217895594473623289033519421347787885602242806139854010826216009744962965412404804077883361027124005020871269339424737294113235198227213764705927769396838597375778375429871736903449567358726539047625403026055867787766183373644332937039454721164637158466326000547330981543408173276273006136675019652509072539144781054528250586069836400697576259980907106712274546392913252294725299626973032161087115389468423686482043186888655602391558475183608637261392156457966425093482809115087690198482218587184449865575113314087309563311019425668108729016327630767889349670807226573817334557906458271918057664158360887055003487592789577796923338326465489764827839462588812886211725322915365496392084219070820780053194213698012075813628999638831285220945422490833434168575459847338068133225206012674001975348721020814217044257369876916377357899341776430534830957695209782773652456179853051902489235297800216795555657858036770544403323647102325112460757121032257281316319157650220826010990912336302353262865179721840169810448466068751080346538055367518129228198927994622978557672170492796118459784519144497441991296420560573629431684258067227114024329676761344389849429693743147145420494353332360784412094477666661241357602831349534389278192105311220222721026252031154169153146969011341386276385072902413512363894194980246990761641459499841155559790746268170064393735687662377705295277953117631891551457498108924903501660270305976967455247306426812654609505899883353817702264048534730537067593009691026911804088322779588915046236101869263630897502345324107706131969108322870720119372306002954638079024130382551633876407977756554119649492562393379411959901191790649421943101625576861877064780508683401783397589752169224435819303797640709283608429148682693109358593837661463289666087936172716205783639349609109670029878946256692323845811464594690511834528992364018951333694191231482493763806910717606378279830129583643142755624888716008719840599443990447117230939442691578349045352241909676230654387063468766473472567309193330423423894565768917526539950458768775708848271305156185286679006771646110588816719291114354668710715192955260988896750615212535542798359661322487617286118607344112860766849494096489877210845975712933331971151697557138232926925032632595916165383703013261467316847987681476129170207188701417106501099576507007774706780626465191991622819020626790226216312401655260583043158318270878114851544413343126472831004530154806852358252621724277920768121475919405741327825398237254387962928781904835473847519782125574471512920978101395831403543793329368945516545587530594716823982929482119854892342316433300325105124197870686669080429776878175209407034396137519372974796062927829238704590294537378232170667134819058830200637958230353149488069426053948595084216286623397169949739845372289356766445696879995284389767242985166972161879552436621493184995189567069132824839604938405596903254000389336647385991108674456283713921545710910626831981975357412380261730381975964624576117634004029665445219660590379654427131187394201295620986128796480036135689273146387098359912144796440993857146087582569717158632495188557653311407855912693570681222107730545064248354285461994514426998953071489186882342409428314028059943336397662068906630059120228657728049334134063642182187594569394481544972782438254826424030855714885501181811998667309095717284028982669136834343003057788196102708128015660411248359884635169653209384907973875517967064178626297481903575907854510456825020594366560099655907835310250507223846114722340033288519587318427653697308119052401122209855880552373931918707843002663565078569710263886860692537667466478694139091418481205736442663011155462130116395281401653473564978363222594894546394439460600606782512403035439647192428328024336577935179130951418340337816943106284564737454323289122476480244874520769797492756619384413337663577503302229490828739015819840279076460329450925040455788004722597260310628282485299489880374799771158740010442771273048526938501503858850564731378890128265142209324559523483906036557296412952257959666655932056731971644856570611855978189229132999968846526261127614210957443211010056505835821077699072165264575670033825358283628048733005716957878774630560435467638992014065725765439310801954660043193997324153163940863106042040478033029938043865705976685410012350488055571568102106437664960781773623603716533406672803735845301582650148382526654771512564596952571349858425386702519530537070827064374592420771110569944790071461627667597637075718898312173505300317667693390132495652066509234471570595823866242298873890332684456990733734398427988627270941288931962154354713753658746950699578081091951871389394843691731101839184054461595989026750120428509629442327037242708607300052649224878612028205846494374275997284518670057104261127127870376199404112446981240807425039435907253463809334537298224790868724948964833556164765863641450778361668601588494658616852314975898216666054552534709879539458022663291606596350270490229868614541518192665975650751352736131340738053032080266830665405098952642719030910016079288863690448449594547891658727218546827384035230107183034325338098732098535894195681338086388146522015635026415707956840332342198550870722662314807832303088630586540148076508257488072547454640845225780094432156930237653829365320779938188513765366735518735073726871682594302749789767640245460950852774901982938916373782706994066467890645101945438920691710709139879011798833229408268340981960751355095050900291769654398666248023667358603656050200860907794915878717511167041888996786068049321992791315579800082978829955490876241901800404641546579489800435866285841575291371783783466730924841062980898224222894983873411519415288057862774775392473414752439284248177189583679641437921705930120389399762188540577269754689153955486045738653606950578286428003489537408266182180219362769920156898012251902177351644536899312219539975715968584279506186937125849642244441747003484722476397914995716309747236361167214141284462275298474421722013530824850364748905891335818818492169495880128445264066024773352798752327518792426212259267361168332466584392287121216345618474679231139420626926066665570793656049523147002070794431042001486554262455119149952563151715183632444258212513460915307667769121495571564680675834680522215368266451675991194885494057054918095164184071255303897675745175308236401359568869258459204405575085624728691610379445695719664828456429689508916021103190920243672356981250378790777942392535510775399249784023774781695305444641333232783915943268993939171484387575536665502648020122008097589651108902098901280520746729040364542259181038302856130243386151457553772968932726660004475819983109171066499935120710314419233862114461602520309015779685741590323199638963025064251992170606950457426929213682118531629374924849959024959115188112939027229891530304999975190602919639116064755240031373795431705859876282256772454292487463349295714495879925167101877094622578145987698281163706874666535068784274978082576543181459107113313905007578028553157120604991564974866050737966798728324347456170243238147275732213438793977993378782722756934360637512010676479839665443851423814501164284376889689354073758231635509335281943760084441910226204596279073599987138464024762727871516381816591257412065748700508788679427716304714818984728677032227313663186266553337994433559897259934821707315084281950443588563403442086414419440321698698815622840792950265910664843619985418181255490862258241159615345755340275249229721988397027588909207655393290313015069203278552858521191525604575406399172982698763316143760045185317874036854992138880676494910632526734474760650880567485668571044969727920175150127512152332677628703382813129703465887486902414716154056328566783368551084096597461192635330508926469018826016637420227420985333938847448415904928427989124614052529188966695140541289711413844615934318997662828597350904557116428626055065450141881283821558406523175508260557496351136977176841764391320337737421018659542271102406795070630570707773280724164675677769810409492027128659682195655892961635685388366985337938478877305423141605051912813873258801874518130763453416699736723564972692053439230835776263543471674191315930792577600487863522147367677735164315843864036228852692761003280262007257549830096305340430114127200297909371086897723715979241717843710013413613960744689164000525029592501006772748309788034414241614948786449572893344106995339664197095966040015347503540042837251685667618809094706288432432055627920670100213261466821650376807763703174056048412658468602421335686861429476555429422513447771364489756552422219193444701013906949159619600604016417489776190943032369849672868840371626601719767714317276177882965862016609883031005337585415104765170709435846988692729559993926356040441657047989589130122425256657160194285262723117060767565596330138216062895216043555224844712576506589971659246883413126682162499024009327086786478969714955168646259953581863458071101834375588853413714573886704047378691477761629637122871431037578561294022909504137362208500306170473222422945664992457012726584573059784302842942038967528541198519261526365904862552261400440694597309139684942555952447107495336972263123800722321346041135351900074247392686970106312393696377003510173543577504349611536035402886341695976982897844879079578816472897764275187913792207776907066794398723925226729921756212376928361280332436097576445018199362382775161747029267849646656314260178609045622000687175064431428504587272473791613271211608526625876072236749033757749193966225085171675166221068312264315674504052173992418347630824396444905508416340919863680068838723179321082578315215982216629718362763516518853186040537890267806492875700483364150691427480973394266488437638454706138259933547913161919320619435451094743534519270935335199129298618833578781855380243177090212382949110266816480109000802091012162942700770954487649373742139094832998465425463197905156337492878699884629954166481651303958355300889966396072011231860879627337563039310263528617446217498922435569925187473871314808467335935190724783151191142432916431275260837424526765940323167971420618548233077390867113004052596243733866381162668945985205017850195980558801207287790331950348073336227349377072049410109277001362979159873777619242300636534032029610321748637173496496334952400774719036573590333008263717137599364061909585950765740744575763758070569984080208117548942285975773775489809690032679215913404072226383544178219957970612046814904632702511810428879203352402906534810135271730175751646693798030560472196874944833719103017212117123723818152433914747624180672714090243290056795183758437788359659724297543323102244969496524257886384076831208215904864967857424951057264361069790249501686114223256183211038261506710043217199334342171411570128979689763146393541286381400735770854095545125167868303656698740600112511777630378349773942702104466635305507202103117224094590283111357251674886907602653058233326652992317879263424830335442786135989394956396273600497677656496746997019175422462697027381903886685786933681379799738662386807978094949771958867551046333616557106503107169123687908620664771227715907380623138511574018839138281778583951514558900135644072345085938737024979532009380938187787103989086012421327707627347242357348182568089406536897572523326506421598413468802763544059905394155379552924078044599500602786117990092954066610677378354115612447147852447469200073391954334829640999234254216964456503268706439281827583327377635126020060088629403571932665058750666187405425209535379931727792304614452631548030741031595205450499397024774272496038866709100014245323883010181178265513212417474702703700203600897338722247054703877865624764140971039160748369368108657441244881234951708941935317461471743108887934619091377148553080195962035310731332619731271800281696147627905131657660621510499596508905346532231682683332605495362218834615994496484181380981065040312263492582688054387647968136175447306287649923105312244211183775007976699348500206222564371723434870273897358926271264811587797464475251605467817907163616440913582769308914373303291823797670371401655125288426491883765092316537373785110886520682827123113257123570513675271123634153697269273179657924576157108402287076327933219360914094620807479261009835288326719007226567595459151585781751320039045839751359265504863226617900083977028516854014066212606496568273087616751144794181350268945334599595199142135117395600996376501298504032839376020976459456359872260195714470950916513051060262134742894654394001325247290478250496868878121874475373177979404538170389363698745595829051732119568978481936270446566733398886663031726749693504669566272320659020666268926786916654699542345571346971386609957130777623987221047898678688399795649490715572131115049244065835621980778246469127781040501617601119866393311440345584758021720617827816783018711221048970873101850463220372668596456389541461631846607754175315910594549285189928913717328544173891300182980440426546159412711281036761562815698231911570017982086333445525220321947826132172604991544226438395242076920985351076705540558936630512110803527460554771904179213234721316253208835454033120354219797869286976236638616821306746900752161840882732514370454603756815379127471516485295363319399429401974724978490049436059079548553933322078324604238471426135399231152474828605282901327712588169229241839526498349942374086460462082503982403847269471122679065444740214669914268087339330208675273200822615195705560594836580430726886493803388159810689431636825524848593270931507814438884702853013124084451654710633616442283878180115497975616360959272957870081106694226351720441474873246499383411580753607171080422883031850864049293595158344907101445917342729859489882214056139067765312280168487923107306014646619176891952209723472258932943596336334168933465408583052396600639612724526210886460465747256231915680596981367480397081508246406108602566265483032210497559216049975589985728877609582302954771838146127738606650276882130020487910127660396976062808174294591128312960700371374794629802275899158852401078784436725297786796953905427139524170402253728725591684819739626881339258772068272647700427769458052341405516788886193356661555172101110715565815487398202872427666156151438182742626341278810696570107683529847731172448443898597951963253349690511894437385109079021815446540730171262990783416923437600544116294594770830077168894104248873687660811244564701076663090975306619550848691423707113395977266088468818453278088572377163522626102022223935144888405257925089313514441511092033603861373292201288679893279106582882427489275828506654324166938195251854971706484795519575832929207597785230834414606752678040601604520861349987189350594195318661797556384929152548217008911757290896463568945047006273951241193149885441574803811802303090313879742374646190416215484050756552051437621844296942855091344136289057402054477525940085997739364170774581311239737981240864580184284506802010017427727787030957135409371781136441348728088582916257291162474264086471663957795553938159349589207881437321036590256292665826677694046515666578941194381304839954535037907290182725830568480237539886557804355799319880966396944067573991287945928268482289900517619540711207671925563644544185362489570452277775532029040677865762180195789984489157371894884933784164259569852606524415471889327258381546864130424026177057674057426464380316721215517512442005219459575683011017861147028961780553491236777306971945076288124854256543112690542078497475355286236963481831070509934472990267549993016108157711294514220553002442858832828990891071430337255412209015249213661521900077968994901127416834336024049478621946922522064834123060879889575422731735899670810162231689006289421940859597098136307067745992201495046258094777456000564552669553577142629735403762571290285868123470590472953176460393870159999007124331986295082934424514369028233248135405735238107445848808535441691082453173517325643230354580904401670387405514843224059688986306999873215861547211951270656772297294257500561062122037384795609718114139923105424701833139513585716438656027605677335255816699079636624552621599494419584186312346833850382245293361300419897873950464770001127300356679332898547806379306604896613738014153751684157505167461319295168417844324867361172622540171105803445266326486402643632946183089663650350460648708039642372575773647212292399612508971541352770275537034686423229123627352770315508996671692562722953940455295967447103951855401620518992229810725760833335193112144646669207470949292883295320567242010125554301835013652261853165921475215674971780000317826230667236457705608025310524863483690261497052138155832486330974083214961263252978952762963134706949504061066880753371967021824096691949987942299307642744992689235526972742186167863313989082798941838866676096473288336217737174923930570148055746660128857831259689253090197100114009882607905917728995940610979813763287456236657246027240040112756413836148688797123255683952422668477337234439154453849271110436088149401047568580810150603543798338621341184126228083453885196687293783277883335343493712137436604586063493306168544627234750432247556115469197015104491348958600238505663450220054981027430353342636767676626587449727307853324625972029242023172836002591001963349926180789996908863299491875890974779740719482796897228073264381444331116506123222527115446047766278624591924251709737277481846776493059986532166858718784277230509383091281815887546344487514281083554651320739447472487973612082004663826079453615145514090706600246072879847833931634496944003123256105631738939932339159411059368823996799719753700310720072292799319767279167637632853863976583597160909190721949125582436451096179321723510913870427926151634839371350844181030066384300492696267949298963766509953326695075655476423007181470103333530445209648274512006763765133325124155752517805264922762957772594288304248248222632210341105560608663889499956813272344843639262157072501165691735732110590130705375739881585559529710654501587696699337718228210783848465225511607349093788762067701874779029540795941300167912408296305255106713681544094043454777276929298142429557200295858172633866626246987674586805559759704561255328094488066264800023369658483957203541665542978274427475512711858421635292875121338828550004080078463671218546089871126657700741149701261144071825984069779139001032806869801853744643195411717684583627728206261161773720353707557552605779728011427073161607650039701642933097421913810404661879422767127202313975924170904095336413320950684125030227810627869879138327676323035752336884223827894885505492433908995967665223743765448041353316390747272575354034463223812514902705228618222686434132957968027004670411016275331140891278028578912377467012453943523337787997173355302553083797569752115186757083471095454903458779113060569417249156421544113431682727284206170620576679056951048045294877887898426141575154677761236054413179921414670130640943495762505634601202901433516238941255376227271347977287965734579999557206517464043497869514374031267406162977953628968140492571339719513253030913735166341346877663752704882179679410447908540155057177717605120569225878591420975687557340983743020432697556196895669664458752468047876530138950262650759200249920241317354702091659285229087802480560714821925292600512146883430282112336565715746830658369769987903663703964754936879380699597690303501245380986901287977560479829869271697434327261864214678674964833493909107239064134544270318174743959798030114168816304297606755878013215822707557847959991910277595510197447729391152601472893642372538781483782499089728013689600045845840871086731208454655559928604954359148057354603816339311459502135432557675163362549383325346371756678596323379202375033093039302080188116262262594884889513416671914343238642416104346150408456025415674267183999933011341047029246101443778075756144431938050461848066039576836424485671628097185360779448364089308427693538211065328614965776079873052380320547483288102758265111088500215062009724553060661428483506324849412642939413622221575905296881593518664014029190060797718205000411227394189787537621072499178900769277903766654703983445692052523256873532567491578422448617968424045138350897567354459599821719936487266700835127599026985072120991449791630210550356063926680281971775259592391212579654989499135027240173728936656525283198562531582792208673527478857811524785983932422305070860699909673555406221677920764462525539584776972084916113715451809687995813393999136626580090524814860018420431167029926425275473323652403325074480766518032793039214490434991123286097593249262450752404892297656018062298845215101183522791308861755279936866819761337612595884809377599630576609792402039715799153458675998037821140954103986074087360902010674579838120113646375721819497641588471985240950287672769061539414241343738063837557298610112061039791282069962862806903002404987777333261402620870256020732587306520166676380418983406791199259105899220366410458835588853196752353328454422089586755772277510456999712442530145855166512866561933689135906270863397479945585441566000257447898369517698933801288672763765326661886071720670371647692199443041780148787557645869073408563617401909901665370092203971064769807174561176741242983656246118593745566821786930191944803036801346526897975460164998189870126707685555605396985823200425319082933266666373340270484515194061890139929701260838623183439747322032506869338358349745355286924013103128144889085973689236318961399325549085866404288608473779720565231926052492655246803839573560836868716223398030677225968842183638225629713666745725497604415587495503853670110185987010581821129132983161854146492133398895545408199384448106922040155294848526935590279732406386333956565882780951617215814684682002625827108094489063865397709358659442866938629608119155724477693091829521043868740263713915772592131173692711695545782705225960121088373958266104557166803073093294079971369317885361352048709898240429682480268318191037002136418593630813231704137516720279266735760145073175344563751467173565931337471933715866679213396453810334836540638563416266842234054360325366673067085206234239630956458936371076386677398424601727933589431784875342955174073630243867943822315434930962374974747743773496068413207085132801828750177288623526681254218953426641517316846380909042680195331648461638871215590580074309601774755262552163754141518213062462324666212307505984067946778567573730169797378472666412296121350305437134305082556959820556067737511903848205441875501730878631437720700695434674325695045574015957651779046872886366541199679325865149786045981913204322072936712442447124077943296212020959319688521355748603045294294816580578072023963773720251109907285244734383785148231358738407042459873926395393737499483663537591593904215732261048813373623588450618766298911233514034293763248808274927822997491738516183407001813284902036998058820466431585789348486593913089340760709193631594880060852802464865683131905779064550447569849833299352501714545806505547947914794236641435517051049267817735126220580423295879669325988714412320210501671308542219917581223863001007145927829670116644014402391195883603808181183828650805472775067218236442056482630422277976428328507001376924799821405844003537786339004597041099553556855413873929098251995323608399782566936114689777930673540902480904132449368792533111222722266927494519743640732864975292541202196037914596768892844443585396289697861141143667154858794570162692873259264148630834396987626517569473747576978975171295083007693502284782568897971338314894203909620865486463586560360909459273723283779331437573285470836276746576673829400678417958702346861478296859814689431078565963919287708936365323589169735887514499390545522531217129570918961650051696647818905092550220487446363634996316744968080599772592339961784842202193381185319571540360819667507858256158014559642123747614224422063393477393439690142592033388707140548665862233143489486005109087688598685354019834442630662377474294654945981767497601741658238931266252543812687023276506524338917232982037514014185767502482744106511107537204324607057031204880455019268878300317210662121737888857091020774112467673483751957044595557433316956781120476352335044203235084223133635671010085439494312060155391432301665438338276645003191998048158394216378448760828902142007647439750320626775410724849306112255310007704904274861707430403255356318241492295492349171507127515719280798751991737638266040541413381987475566985643200589709462458187480987004631217703264010454013627874052009847275549162946113304684251717592353466641024996908763447314033883528313799085728743088422864944090826898967258389547203207820765010707774261193496400128770321328985164630362437320928368471580838229837272049313067056485031264715632816953157989228034995114799708139676295587582026889950095731797696754212261300908366664708890980552316766997105128238287314717734593563063692428875574031736447649672147453344798989742830016736186575145314147831899395172177847548189070990399425185606572865240150903309891037725659383098131338679733051101134193845762644400323012680830121740882949101157331817796775499056963528608922856007960627525729322037922501264465873515968230057659347900916988802189688847421253474870463894761623485358655762687138862058987989053922537330589995556971779971275011273371549752059943988909154769431502668113715786168001434330265882925841647658184547231349896105668472546969174136946141617155075816101309299532249093525015109456842051980192999694067216185339167211141321188396016091329009234682046693069085080914795443833500022122412080937086266271154154744062523742082651083817683095514432118864836114326078698013961555548633604733547932904312165425388896323708066318261805090425403440248146916422015937526709545108532008022821752704683214674670740663863667186071008149817717638245548180603558177173239023782327110051855367455564409895182139422371292848507563033811130703407903265416749292239365475661065463480554940868990382346640599536381838236870636121618540266842255325500464599499920511348207974903708231361757572721557902404476381690969723407788887955433253785428476666928038901746951898545643712793358630457425338129335889873549975667175869824964472033340410853521251791926212228201146259972871608902609840410466842799974127708278381915743498002252019644737109626705203876798284789664914273713389265775289588315355882745422315547224710294218949269365821049609781044016130436967523934476924529122038488709606829620619973743628067513841531890622203774270978451568620807300488882317558387514443164019790300025138921677339046169521862392985446150397996278018821148340607892845187662795921438757077435059967598658974335286952124514871209863905200416442195725282538882631569641237838810416450265765592606593177986252797790936314042345670270035406819599162204580726990588713201029565036374231678728777350842055534259840902169028973691483397533135184295613728196540267876511583445215971925426918482675144265637358798330801013457199434561107132496045675698200100022145097629126859922073600168691459233420706849066564406871438668628077076307696674662056415301524529907368807067625353307066324007567480553552143358811166869801705626649735213101153571670528731786243417119535723695541348670087520571727681505311716727836586317742689600584064339058377605051641347887767401830141556882131551591678913220403031987081229111443010052082487243912780946663950798439695327302183487327335953322535668066805751916031693771731515664938918515966949037436935959334430632864157080164419979410795806963310559311374497493156189985909054924316403012018573032993623330840200807957431790102831552446501445309636793887849012222042249832405581212113860406607609006278420961694005525993315484541531416921098227175461528260880755692858029444501080200948201892777021493559911819865602799349938271986373726279230128559250294601878188375678644281154707090383180806012450496814488737286713517581892202975866734370522991843137653456869609907358672631773280348044055725308264679187001719629717253051230449264033457485020540801215535852294715801460704467581427462033786025981807930686924120184654153526844562636821836864725968160270973902999992118477053915698378648804235761662953951723561795760584745050659713881837358861666730095154317983893431957928763093551781322521969805454075259984910479073815238972027308784385662102870895015955567305998312308983349120526103716614419309980488293264560651971566327906300120460565506398155621287009899246385120696571686630940977344560737608233875809517751165162660707571034377012535714739547205691068961065298893349629476253735658608535846199704685082709087378247363463601708702750916553920707069526972998750829701061008520929856564584894028426175595809793085235859495514752582220435506253629247986016760045266710007626091258231479566020887088320390321773906432004166348961666360583490680834632693926845085061116107962957297126537650547707361507769287300164377408484410323144909263364198750328907677554750435340545075902910646144569459592304817516499438465288635335711909784041941352217793185450963212026966141479485919714241918216672088080889754954467030842033800739227273885232658785168993824583712771261126411454598179403296003134276724240843896452516064096023959681736587161384419300734074**********************************************************
048700403158124615501280767767979573892899236224595189032592516960332511371699109891267261835573649958085249392424588844084801730197358250756257592253951460976120586502725046245652281906292264571504553273272724507996398676078027175360835765292696731144240855179805107228109931576158876553056975606844868530775329217555484490211819979515735055900299276384392920136396159106579640660082292711798773511538192217434885968560500468792089586187285854033549527962650031915269379978878149881255975546540750226196315449362944187367469542124232158276547763051137845469350514112643760896231644531161991910203199795588283109996505422378947976219494732344666590295020949111630631008053998006401154705459527495654002226751368922979883591429111747677764583483740852650216666978790357305152001603077044684367031518350331141581055510039513271765010082614012925614094082145210534374726812978858803709408326050822066851780936751331964261689285421377918270450358313413544799967109043184567689714647130211922358224879039032094796793871047242593221077462890867020650221672051968939301611234748568594977405494176904730825837312265314416736053481702546993128644745552849087308463139224549144924922653850104728712724204216797991370391721514607886425814428413645595474351693808700804356351775149847926472796284863365053081253972207048528985435627192323337271405215588867559459749258496585611107652820651371415108473879712161719357719242711689027963330572753511595525493927989510538138175287517007622541469712660635250464293935403341944236485333491515103860240776457634038321267889592315324991101770175446844350343556938485601471018556304431386654578132871308995997756132338659552628237785598289345682176202407860900032259925482081569721018470780871384687674036255086299964846601180398602193777576958667240106149087181871140955123035227577263441820763074142877250562993141939717749837862960066058440605591370794812603834908985821004256909080338142815548576881959868208694005405690705826010174455481555950300173298018912719433141501385884368625179091939644669197801250131557511244450084391737185521480690887516487646092667674300514872801731188209860504405085060663612528456271262908814767337455123347941022374783466692630964466634644843511638052525635149594677113578582462752932643586757474756456485260020071401653690375517951833561840473545747787956730226808913251589478892660005813684248297349662491593632521019447110326224394745422882946725500660784160297661505950962509492990172200702278059539573111391491283778185393967349213866532967259297847614419249536799972768459846299739903898779530546095253914139318544345311671254338712993655007869105790555905393716233743130707828776248547110798726344965722161639214102317543083184115878741469656830940318996982708290466326061854018612934913367676242221445808551350553996682748107630765522076427885020976975804549268673165704937293286320452650395213408109855964842178312307714997226752380275130656715473492415907172207542367250927578984722312460258484786754874965959587852954419903793520593126106914984301882130581861515156556198389475752259844062922148496357824989505843605019003727365872616759990621752546094708908813072045362814669216348862010702693736195098491993462687293378004880205613045638393747972046662435460631706422181293880238197400586024022167213707971580600540265457636484513725601270207729382137693708415530141333613627039900315458487234451510615267446914451819422097753706076946447655345837915422349472633898616589514576163222103928929256389476753748566573112740000829714580374590564714157137341452005159656035238520648582333863381583661620940245586708504719496733660869723526756611162092591562696244807176210478703466046634093261148933642686455829525654453889334879814165025270683497206212330713229203241805260873451179103785782010884743797539572784152493911751353586445517212463381168660846174995116406993535265738857875576415443359255303826473291729506754054659064723300182364137253239582178102620813925953409607595086390987465560775470678877353515617542946836075789970628889012865353641770838706458033131609270390986711686738769891565099492673974049730940482702470301276785572858572751845691441667533369356304356524070249085655108508125934633075220111086935497615990486894359027938574209986959870710698721573522982696974262166829810062398733468990162647310099316511970571700607555134487863880318536914647529153608154116483638966680362444123372633117177252492448343651522616288123602046433108043592933343124403332978199711736810849925712013500066946312780521854280175438005093711944071377030400595531065149349317705704900051519136722161492407704316995810547043319516158802691748153808794316410094972158757040727256380640352809987236438283683511578742454207265904297988670279936704406263072797848666043279668110915841403507362035050154385761853258042443683949484702477615969986536463631806308765731206930277268572604466573585057383372474889438506589912311062844672408301260524820985838293959964791199642843875745667814856366059519911023808703679810473639160344993623415505895970679665326495847762505888250023199688971146446009419456308302424639557254696500619700278548908155025457286367956819278873982223346055533056246063909039364907785857713248473114795111574955308767286637149071605661604164975016511022707140486394932255271010713998784542012015357665520676655540598418938649144291186811059637827821410566257353984192345185683174995909774833331339240991852049550488495483030589521493309929830000903690478900907817580476763971767158520673727605280507111611310479769055451219858093324597366783513180431510545437486676383107545760016633573146932052794575474977411308872731113280526348858515453031963135041918890038572417923165605951614326076017399814688246578209641143308500890187300663955493837585887213308893653421140088400403398379809347051182170766291071810263222225157917788827900334799536357741095767615130456653109095921366017527485988610658804886593947957548454335345974352719888639001649744233444972712141234085520097898396580478162394414040048127580352749549869397524863109557161475780380705919516580186722885732239223806473560835043520822779524766951006718707921024248035059332678254224433130750035454319011551524854866258550738766787253303941523027286874733182501701141688275572499845684277795175816338971312776724877492518863133746338511580319977999275379873706056430694068865041517517640740940001255468420029213703032628693878297971496286562570382568386468336561927035468021090426324525684875976150992038339788717165283053580958687758749412761121795991291628669828098737971618874815462477847411214031931643378717414199849611614480225932487577302046770808940021884407359701540566177029998312775011268024101424999182030120794733753945805495965054424388695173258162061369097959289509509336144901348167547581499085782188334332747161738398872834662713503521273696419513018242882294066955085161587648933791982434456369985322426848604334778741062398234898798812202020680146094904284536968303221919487247878199175941723533364278223752242170518946948441121110084381800151590245727315521111497235636001379758163320620191807945352195543266343907868955101592878774102757947138054023721436223557374828878222959498690261939966929436162056619778798454653703222751062545918317593611815241403866360547973236539479268398462062334501898944024802580354555246803467480550618620300143100899340601614115962632754169436990771218850327978068715385904105244082886315662406658733673378680903214094461175326215947333628312842201481762176213773187253647697672415337466171864465340941348478100620473293489833834597918549243803765114275931288584878548523618846066372089759977941840094180919340455359489377877111980921718065109987500507381015740778981991957636114010629082729584636991766921069188779165072248183596554566384051227119773900189455838162257571963020671307879265033710885949264380065905689313480854359254401139045319060343909570193793849964045740795034934284156229967176198937731748346243436570296614456249774952630705120905168547834638799255599812704694336590080982728936910391157031504740635199989975514000591056535955080016683849262266374274656963567262016471016196330038086218022475080357105380099696604373089205092299017256521621986483921951670689594526913181693235115174945867205661791120430773355538829609082751492803416305289057159874145872170057213243225916434847119515328947939070044042449385428169011798657232150163481573763750224364772299570978730244528745022272112202774556886688981631798605452831424415226613573651298764569385685985951466711281773035724434597872043939458256075445546411720678008278982820660041086750384019714367691557741886139905258059553619176482919269681415558313621108725408217546081047891663402288642732806621287416876186798960425284340788124208699311600154307271449646213456694682509585268350016223156266731861905516445690425307702211346566356986582174594333645965811353701377990885091565879248576613751300656573414130616182764604714418144086488926044481899134618325839533203611801034124376055124245274311006482131651732538381974586316592036850289370301746927793628824286463758040419184499221703580039186472580272905894351385673698213279920168911964093939864549661158409812892846024616964374973220873136288390217171867261727556994545495765692485773459471812468691116452348088367344235602016616069795880632888436754219140676258528658712129849322236447232389012265839643765502171144501165430458790870452740659205224122382806435977025046923916270695283453305551686305681852462049513941415097142368002431720698574533538820773093210373226398240170387349234512188807888814633998013497026377157896667630653532587142460007905748533374629203234270698109524670872471100669845437905595125841809984157060689053201975206535770133021543933259244816369298543499785458078643980955368117936629696751328428529565668037996377927922003788181801906720488865438989669674795048328049014709849971646581981704946503075818645672886128219361105333034147059961348500063969005829035941355784280685011547135672212753105110489470931171773773059681038230499962627613052529563161428609286390762961382004214766883310809204520848082537020558643719564307870620134790957178627369762685818719805362693653543128780767600582391704168375808819299696062778192320286555992581288528858443496957406216302417473547314663483333240610268207751909245842212249550336713253614835051143690033357234516457024577428406446686872747946388020777844691985617279544052595665723495549902297202312012476871399039552000659634766998422282417755539586703034092651425306216447860522464922771459797543604198977343884410102700253420214894485619319133053808774427440821463411536651537334110192171273682833133526141541975434355431220578343911361970539939751129680240374400434094460921571814111588379440279837645214903121400909658322303209324541716726535763752272654670134765522503632369511736810972498249423814095762021590156298404818404781233782296399200109339455608758851289280438291085171344591293028225958847353657634164994889804910899934833496483959296104364660325051123731508701837697209871365179794753928583126794489171900257681432261140217165907564910920713611351031109105039380012331598867493414049298477955662198084681952819372270465434981457278306881889657749901309322945116976243573421986002242630252085581579386446023622180304289011124734153269863654292300744956503595340948119206322366022724979673771561480390554946554107351001557183415117309265650335661420502394373873166717724896854706596337973892251775202772451119160659597654855570573384851621527417213574371126193445236051176581895965182571427351665819399423888474884479112170442781313352283847386100296509250926338013642239992458423960998323202146517025672712684596314814367289397894344158947782374359290938831005590733085343926981357529509091777882031016926884335469679441600728508295699368414002890989781582346031659833006105626207383321398209353168473092446436566844124189464355087587721093198814216936754072029473387911167573251682423282530957728291488081438764735660285288634888631671221501397285566713760471915858641052573210538240175143121427675268437601348226963153044037085796936128253897680252473872695911687130463366420063883257414006775288214517145186239632724639483622790637356482577853282239403258921030749187870980719353943949020823299804384197469323147480587963603941141773785192696917845727238642410883173285600441254501331401978830277640627087954083503048512659995063986998980978231371760235318327682568689780207138566841814087062088071687237549217403682538101690410822016266151055321318277945948849067785820795503484187094723986066878128027442752219783061630130816430052585261860137471878142028490038085581186566306131815702701763565082861525739868263671483732034899431813914139201578310052616102563565514363244780143381420990984675760752150116926505118145642185502501818401376907625095660181499319940308652888426182272323130451995919490543044644920205573769871961590155894027993494118223028371875967119907783155279025695259092576950649117833636803393005023815868315789579340175537825348671345300128777866703065103359337466212676185491451331031629652314978515685792850759313410480960600044510380261154696157823302425336728711773607212355035708819795804341280203100792174021456249062309906350680593395981377034317675382664169044153245508707856539712789524976146630856572706468609349277847437120670927760157496568414217978277963253691288825894095566543884980682688245660248731825916368580749796308448355436406190817816384463686490692185135204262669397356766941876264937942091286821962530753613845534896750884074062053970805637093433337297055959199347959700533772012423147410604739905552209757625227782043041392707851759199091165254149547648088670732282187581146148281480074568616459130919280706019860515139535141429840967898431147883259732646203098818559811008099548739490541826287806276069779990247360569313736105442595209970008483126219592455102578135012900220576967612689364147210519692052253710118420060533921087863513548531861186122383542242845070413947643319041060070981786775275806325890311868054040675779524843733298028515528433650071717042680086516275518241043390100842336559049726669451765822910434497748416539367770051599757734187546648801632479825742217034235938716266826261974143706081257129373804563951703004584503961354775323774100820601744310556920775304370337102163102738621831178697477743952019448216335544020464076369934855797248383157119927231291448723059456232658510548396630867224254027308580508719620185959953380168700632900109801774120748515586342773813048907876202002421342447902574624378556771443574113845297932489341822877696896287902719035128564914982223738493903965622446279976545922043319273674631931670364909881844153056396448204922534599108844436132556521778073860489039917326320142262595027565899327717924599108416859586700982058386548872743719388391741207461744996230795007749207892163259081015862461449201422124524364330022162359682563604743157957064406524908530522816379893246087703188966936785242355961298634047783902164102641812666343622647457318293894090477519310441299124952077392690851662476821095904911719124549684524204074555566761330545858680633005626362771760748318036130492740373573972587432747615048944183554513491397000579073436073353245120204476005232191628156267538510691898385565710531023575053977933160146925558121267658750984206642170595573078442253473572251073584002338891695032608869018118450092434353813660124636530621825414964713352184522292531214059474299371885318327979643726350903979292986917730236762400453803952052911013000267850264565528552559530143481153537011520228661876562016645889101326934613616325636728083050851299046922288515208325877297581424974819874963262749205633309127026011797096728439843127934664596136238900227177517713218215086433114260479230653785776203117168503677682167908513333392196823009837942574930747620308738432826152874172863277012812337571490908498310634068776935960696170157614649581402824388050132300840236556412359722149531096990212346170384338130057578946736621734918137930716509698157327325273831689460048459609422810580147808902992842927437011051332236420266951613151417189610359134933989995224688154409516413711099811575287891190347829272904357937441139191208760165623435358706121563933701922775171195566933776854665671466030315660857287589423938803745414081596222151598957572522916975992712078511495459184952025773287238423653084454801390690789703774144836406657092916919652690682713358992516550067131007258825118629564110117602201382815665958770060750069810747800217155118844069114224830267650075384617265176123852149933308539229497163041438914715296195907007722462664310373986489081713964096864221525901734810388825638897427753494506403967541623758415089436885760119862806000740404422847995508334080039898595622627926117580908122124787882753220620153934745788834710178969075797029051261906894749801933456374058027684335012720444273128490098640150034026640552328314251727430405117001392632766861440311028008065981579786266098165449796883085678885984788464074535905191474892530732015355126922344133243287880117498881060163656696542363071400414816038299541132754866836654566582641286289514606840903416569797151314513097069229413194519858761298940981927289963656365276332240953868439636915328619202922960478474886314417067408276659672750448105563034462133701703873506783563483108517803141351940316931600895909344509325371306237170722216358995010549001275778324390383243783694172017140631828220292646914814740137320789792556305586935134481741374480486529126340562750398213407147112969088437568187543031631188039581840081552979477993352301213119506043504669778988495795087337388377560470457174240609035821445661782437511849473038610382733323531099743414739907125518932310165227278753189256882114647099397323684241712475089189485544595441560284679652513771976970857372685968523644371981766558629238674320070737593606096610330044100965580412266551322787897619397143084541092944140449305242781266926329677401703855027957515828628003760007831343930043312876761198951752886249360721842592305218373802767592606279519241432034010645043410851132773316647302882325814713826458671915481725448525433786040996733550169979242851931406351804779748103175311299619870483867678120258970794593395052020759270947363358874413067026464122769774457456629919950464030894604181575312191404299958719636145857399970908887754441309009204801826505873542542905534783396521901199330191448809071704099570251620164448368154852533279755137330697414910700347213080494651063704539762109962038098964440054519607300706459214055492816693675835065028240015614594145987292460231687337068950176433809707387101434250085167495268590879588571770108545931113413171907423532901835622533396711854103594444114014301940014071950510274120237595181896686680655329525126170359674821139935100103458873803414827243828875015410043008575696272005269260771338751868145854941815018887233557145077688067097233531612011771955003388845826732111839609757088606865945846932043308110893014239710719560590775504866606470262588315854401659381120216571605873529120542647645600090323051952696744150988706098926159234974695144247766394919981357783945890733527207520176727646525297781111377383296053585753678753584041376321684455527838970449146819120241613251544233179667767265142635943157753388928036436703470531646498140518532654412879575974114190863951791238068187784915540658767166121843570275175598290798595104062876320246550786426496654625899128350481203986105440908356422945987724349706177821362483663058417627439178590481536462944729213491634009368299247989869573681900619660616314662950710293980764259737024890879962398448614243331996615623403379877857623811781422871014278809793137466352576419017773435894936688140857887145466036031077453238166718636645876119544765519340203002387948610593503203239874694832103523534802182966351657388364148743528314495582497767673523128638032895918381003946061338630048266055635307377887696968815045459302524062556793899775679024341963221506118055569988478003382525033635798922859669788610608175298962960530221384511195240769568606387054798933379623409890295952849904411159536285686656137036903287887805689305005824287411784219868085215590701103039445782626542325066532290399016233281329527386720977179677316431354366356388534615014970586102236837872336428384709603780508317375703795534789385385744897387371660658302709778346922858490229724182566159392205366930448706239349391549012616350084961786501125497213422235392633887744474223980919344284518617692550914891818632703991801293943887857733541914420225098874057293517761231710717976684502882159753903940862668709615681086305110923245348849956824743052145544983687964800013139735663604862696328179643668200484894263215898017289891231173144002257940584769341683402610567517058136484837932633810820049666555385879599364281724933188304315987554448245756811305068911132693711545988524808156993238379655484154026511607236442968215297747064941676860730147197426499110783057108548401146287695181425864539829429376115692952205138768961291250620891755948649435013506652032127180832222074745375981615777295838723036246917542485983596587851766309458964975677224541220855302606114423538705810633126271370529896559365327506333978169744953649157191095949240859151731146436303825250748311107953713992696681318199778695665973585847078614037939652765786677446144790265070611849269183430688739861620927699824386584936885269136587875821862492912301808047307468898946777682996484109068918706994366181619817291087106400019936965683118998888146429530782109000620975394940564774059357082784980356889260108337806595045243050829383062336678830236820364948741369088743523995457568647871728863400409266432960748982981268264180157759790264318234622440489207185853001762868769022969436685889057832590133926778699479513020919663147986489693742807080985991923506922669114345617108797612553423193445959622940639175697266225564210756302905740259546232508669315384088914172842243230431544673394827813728493240490513948354892050869048234061138174731091163398407213379665236141889971370513842457339769653073629015041926410189661536671954386012574463950409576270230018552894217774007428677695891039196627622713090031390343165700884879936741578368364780383344679091803233676063945890953520027258479956871287142506253167401347409265051665056894666348588902590242897581967271930627753276744407300289333236117288507637334705678208071809666914494090985710900847635552038088707480490121367066707840211347442831877893301642854390721794058986207450246277902085341032380142975440229099953202806726060980236586071071137026544210493667553564433043962156099731849176154824134090342408805746424197331962287666519916561209405183123485933844944028807672566298920194381878831413765619746194850936899927040181994060796802923786451065896654390129197035347072456602082949310731748056786024421719085125404020123119466371112181308774971439299212878870770611557667120075958711969760770521648671589780610359634858925623237492207702599277055232875284741794141459314088932185030921552898825711493537732793353556527620310274370326106258601922098476679579670697677457064600735446322739688388783415974308849814485342284442217865314484433280733145148859232920141476196759603657911014456359743581104306927517438548266902476008449306483532006351208103134708640505369083244185464996412262011117691669187680230802771464722108702323426324429684491305733890574023784193721529425097076373216700340290224909910525234533028707653176342139720386192749617297375297767097036178427609544346501724869709498450090873356872449600887989832515669135440434555336954986112842304585169985145771992955026238763256529411406393141915932851376345159499390126823074940979125141855936764965472642627850780487733175969714777246820970134907678348509350699385222929630927071652918710266011120805847636672196488651594759072390811111891095557724767628187739627580154429590832898068554412404215570015338826692028986070116541604196647221618688980185626499342194328604460409446141865463635999615116763770118605480952223822953469428226362357258043964097481385507465018001011800060999934966276003114870893696797146661232208123620368449144233984827509517337397358412373778588923319490663258899448243525874662118877607402257048010677566954580257230788794541189876825126066962299724004993105295697860799743884321304451591032063416812105203857857761632830731411558453745302924013389366179993263020198166733047304129720158204804880024254153072591510395170949188613629447111342445703723970104157391252039297233413835775766717202706816654853861011679107043492892049730639612049713192195307237815305633959310238472014278778040974742632406892997822037398755848133463414233708901415534853393733548150095442028406185077384040945924288927284337838278500402788531522020380913420363659885981585360673841497461905860930240848344895898859420711310098513110619076879042897352568396052915883079114730171906789464634900553515930902059586866281920647058458247328677827515492378056216915380755336529413253127864832804493216728168705783099933156827270797906135547085885121507587383212721733639128176307794834440216105934700386502518708725165357005111173030160377199071253620660746319049616768338587362296152155912463577652060331844196300258177909603982142768460236787849068747665384661165449475224108583022872710373364263337088895584554725687124387187998126793477842569318501521088362951794286218258028479330351132976646160320134881173679185966938567035474683166591359821575497199074017004284218817276591554194918284786914416343813097627650648588555907078943585660039057298116039014012198971574273738715515638105589223134949706889630487641900842834914390372389506809760171332450855843625780985118236869555481469047481815517088552777607361873558324823571864661063680094312207102842430490380803983989348265927915465991918457976016883391851191864506039126356902467747332292313446688039876653346317328034392811944411035859273597099589202766893706267245984667274909671475258630036168149072524059749177999565999581593477155597309397368450306321330561218219237191929050961559633031878234955585866964162450750095868432386050198008018041530940492166635689968958165130447138751146587618150106262604341594522137932043748344629334061163866029433194593786367736236103374389263916411891683912762098200132431958398690397407774636331987501802830280943211365938045807548407632458613690158151198732730384231816811051426306843720742262491513933861837316678369598954225776223842095845189200025613449146878865631200719149851947206557751630579793292589899000439751544348346051959895921257497057265982058770508880131444327421266818187299749014179912902461569110905982952658240224410137697489737044750295608412641076344185022748989443787106124351923147487872021668786574120998265461965738496705932662583696095250309367122250921199509802217097938823199866024008521076366546215945780904197778045523955215736609321488969247769504148731571643014611859447240446149119755152042105975277626038092961710590371585061463644725860088105067771351536533809430258590641113208294508373005386729087966463756983023175853595993812912931343488804654541423617924233471919084649319902538692941694162323985256296367503694076261586417901396512647335122312786825388907873839971083841625063587108041569737601931830157840876899323543089741486005758861347661505617507897479901234730477760359430562643184190092110634817135611039215573069366639596673876968279398875493254671955085618301131118216669772027037389165526995922395434271326468845096181164140363208646585479928162634639661148291830447103624919023817496892119140832040451062377973518640148875104831346865644199392044941047960873558242749356681487073689992397638041573500660228391727350466721250579023068603801743897363099725787644010557186624946477184386359341072757034623587432793504980766740591120674625789257928060672080262217135892444452905314748630459986719906939382586119643836716629001286805254463828149923509314415308178666590179691042397666147417536096706262545124869596590963337370917182224674135008641125358110106965401123017283129873659284753269696567565342326464227917823611630215440148380316925701290361408338875196681883647578911928229068659320433035649767103799525353111833467348573905686907470810787191976900110098794804819255058131712710518579778962901771184594461118934409011821395591128710019039037991308748713796679780493313316275791426457076279534937649424876143633391917150288202946314880022563187878907264255672612845734022740277282851638343375354134633153539909722942096660964153403219839632168385152076465197059616278189263656884023793592434330988514756585329225807170145359396844028700241857964502497649826309355292015149249446023323421759819212289738728509211267873765976387957295741160273444349595118735532590804405865691367340068646874108018394027097821197815953392722808475887395300974321642894399509452688327166523389045751410035008213199386898797515972751307102795214859066889524502007850121742267641305145063797130121710651381857296190998795974696038247726029667159225758390650208814103908191437486132557916499555900027764484760738675555091342470142201889799740961685792882046145950878923475665575035073191676677198377815586862439017099859649009522598707164441586414696717757585234595122741765905060317172878447575178248664918853859233138054497331690051326234999130238448089943284135782286114484802867869753364978652549838260090963136106633769960955537066629702181419226953646282356485432154720220484937394951903095916474468536028130359380921315765580268971987069525393202597216914165266884718627406120403103622198625999432029639441938806653139633594851706352376468924881987896366961699652331519782872366543455075454216149520951452920066222059390879417147252471655494981198306199717997543853370100998309053259447112147430834405906252307311131807985458173617684904322510078057070760259741747395917484475577525682098593150192787122948636834169138899990619928651269424259479104285598126887355846793084679141510406911254784271042778829534854318265691960221578067721181026289458588417243401573628226626050102097395343441691772746980439854253692665640167929001892738165527166725022393757289496735146906617943810018946164847591095264782289790928788504360232513933219560266498714495571307155361794885317402301513200538110497771991798128087182233574838811134778242452822744141418816779518146661107261449565487959500291554623612288221852730370170892419329922400804705503017261234813690746486167694636419199460723078372758920090536283325052570049666026247814621229848258445675901262173865574891125542687526298496039075900673370615819026803583757702033054569882088713392857677604174373147326655467752611820127516291045258977589699875407006877222491312620898736360485959015646605001494872742843437089605866116701480537011415868709727578992155218276155124047496856120944046484669128465051094410866657407158940430321377308937254061222689802399129424818496804003157235648975640071323028544003341503189649645710042060113687028222697061016585815997307377772267717225561968939513291112108167449870265226988180656512786967776993276971507835150853034324356437436883241791495463965567274495169848618718750636534152074287556383735180780584770640190197795965233986843860385245241920031466330504740076716893447002640703873185638837381208587338315551604944841516295866881508080008589346229473185004780874924832624722415929373596721243236317600304133184068592613548024612868458003776832093998656408654028816670136485565130676446010448171478690276506192337015524272487283467668461074214654270375437835426286136544873512215648649073747407367682028566058794730028890417062838709438365306598518281453361271949485576103019946638867683018028635002400394973561968883389217456917682797363024332592196871945848282431256881656203287475081628808755908474552673346577849591665259028584295656959527502037455601473025447059416532840253131856288800940995824283909694702345193936151365749715094750398769073547694480722639235464591257847124263967191930822985615832019473263678889161277774950815042535780271520263068859647831896639587351772418231413067172297222323930140026593502917023699386105183796271792888952982545113159937180881986689001434200878547677021876030262147029800526333554486271233783612649938010528096188495518095787530846007058749744638174117746613843466723047634751312344089595257148866902728709942603860983739969452625796559767179095460362133259503621488018428390285496514792228614112810231997611428448596945501384191723531740656353978274152778241386694002053681347356368011657089140778336308132413060060493452743010086215486516870446020797889508228133547093883953641100774626857669496495164050896773502702316004808160484277939425104278461269152755597262676517254224803388324236500550839795489495872280044165566354310064112960820000851424612963948894778796625839471345598968324743171400926848742174541316534408953552695243672626394728066366959198081281029928449564314478744843117592403610528785157966772136236430809562246597741356142490101779169136568442709543763030054728906867527243092329338840416392341887160826020314882450992197672026108427445433743791331421604650009878823600185804530299227060936100699111512384773992196838613004686166935582458812151865559860298737381820664155601019404306439497679602411127779719835656720346236188348319421018467245225221027933331809623751794557359475766797768971067221517351358838599646854940395702359693372224930262821487634019914653232235303469509537644847398278739017322409652603777656711187863483110250592857372393726259372306243513425774742558289125687741617979324593262310269053307011470174365543971124636316929580101885396449907211315014993588742937445504538702872100341343328654929144545307670534912548727318241693186985946103400135965982361318436942434090365854714427674409477847954939072125610347297891439365161094685908677390658207778649327445810043233325168988544670860689758618752829467504224172351444773183125291142153067443097530238299029873449858856325316499044482410057954399095916457519617192193679145023499827545254723302868871990264862031751600417328640084920752330445393594335263407555654259646511073710857885104502240491242290631467993641350547702950169356414249337761641399952282469821126688969068330790858981481345582926048359038641260823640325082343640030732940859386718290605234701106303611394376733662843824358895513438053071024684098305586756522246708011280206620640323880646374810109419962102582425634784694213864182201371827820686252326209676116206481688725858137700788681325722905415693697567673378491893864507227679784508025163000217702216216001126164157042492564916560492418106898465026727203487390673662426233427660093596995067908113779020909828282068254090728004450997404305557678797087947366121266750878648324301048013795452767771249018001144075613026514714051598133712408557940176234638629809159283680176071497399075989478663552281141270528273102240157356555252963348882622307427052099545456459276639653617803645372775377614694678278832129726092375803535204941815502935430889647427356392306173437283625588125536149273330496145797752760916780126620854099285064847814561338729285646231242463672631905348036738274746700607666374605034610531873740027588638483645905250840481528499102163743867575956662657795231919118754971940812666855708453892873998412912558920709696161730934074296351524878305375257045908103117605578361962246538431438288049891274930409932778617101235479245910427639617966067644538843071025401222151404927512156848951880566813626212357362016900508646492253542251310628910228823798178923262923441794486272312321317543914021805120844393081041148758937341556734638462783417190860814740873933425571478112158532443291497114568268860923668996352069893074081730774588527722416641666638670966455511714244892517992815283756532911635108291278784496010159485835043599679165727405397248835166394187917988174805916023299361029752265693291509120509539694682391167504612306827619664277333379849775752227360971648056655804342067967932618867837916762662277124022125427721848086133402397196640988402622768738788501709369771145998486003200932728506917650286497172242081243459831889834395771422880516174399828110508162613881668669326248295610391181162280097835582350402139965108918773927432430619052516461212679969299005985629318687427985440483853515473234241341747111099262953576786941348546113611126640682100325033506811021823617808915808755775881573328354731127383016323713553461923528835567145397027401287993291177190650579704934695412784746093323354809359624195223309779765826294725252615598643628842633430358901554639679077433764101348350727187377886565343849479762204900355133571492740475091279161479552717375378692627156729188449335488045485643300203808705844341230859549575884632991601602695525097757648827340819602937889278735975851768727505141171038608520254593232736883532778041962614091581741149483932927784276515772278113692686080429843554191985654246180378180828796192896452353955319676553552107377315659941447572511035499341506018136758912393065106232731647607239642291304314582375671714346523618280894053397808208053530913510627816359664521239594163537339074646630364030808253138810047051538316256731131340002735357781377029148888954596282271642464628840072556729562513713606821186827342552971770963964388815060895114716149323364987543299395649003307677097898917953958520276149048958259888421555177053983287237499050501040768909849119474707407721564396409854373424995657407586670752039486124960400409384227010631990004884086314420688939817441270992982567435201505739816739027530018326753877450152619986046705179454411755655652178777836643656872643987115269619203478243743024730630320753162657585805549071160128470631357841661021709213547915394497652435338595546345124977165539187478821022172873637308850785742340656319038450891669021882984152571378706736451734424579155204280222792658111317278237735205127578757948987910264291098931800139186920684132733125000340788105342622119536251072233996752150830950147041605853494043248928981551877691968211902334220775265661276332087110941620453373422054178817453116691223092717756166008826886482330428449669421912796031919739811084659541050815418645410419833280710411503319734454309366846808339393270730778108003620539942666937718507371857266986874068061454306064496491700280931500328047164274687720998626962622889464023847004314939047983411498325503166755875407176539805632223406693651794904571307232580998607778738917046855212981476054800278059732773015835844665819062313689921050918185737505064892109405893293571131663700713965053221973629037395950797338802752000647261206885435874561181653261205496834688182302491238316883367233183145024062814333963596358432231709581446627129533103130502569684506859175801955257291841089367350997323247365755959305578366775602028041930256616741282724202475635977731703825150338967121505333891923208540039586675865456809797938137373641389112049317266855866624693418608167373648167475886172482261976912441874880907627672620718119699768186663711532911700391482776048857941797011054097044177400542234542686990061526139209684729198534824055089439174131144636828522115493516114098087050051080364667742955545445409467573660370383756279444766446018233474845584127102274269932372632845365039384659072029190904896635559519826595571338856633231150935165270031157477102210820995409845579745890484403450540192368238152633935606642068253030602582134827860198531259038832855991241069873794892182308027055998750785552191422276101496134516829012646924116589543447244070508914701564310154950069126341912521173765100308437381288726192278460161523653097404315982061805650380946860449477429197317006648372384151616486806474311869690471531257031547298155914542113763755514046273059541982078878754552596788236980007982566013973264131342085138419869636987021024174272817150335100366909726613190113685260281446496571980337120290100585148323263860904211889441470003933742015034196634641420052768631742888048358690439317806608779251484356800377329000677718998991167861644401905755691378423199531320741554346643957117146282881502300432797666987862124945893368004815191132743714824866173651622331647072673391083855040250204187568305675186468108352358342544548679537690579669521164575431971108594734699674675566029564889821936579907728674207313633606471884625041195788108283517015318477981736114463596184809682178199569992923917198481017008714511142853305682721880261615385704736362014779198709411276417146753882207865508755940510432925052215128079526475444165991389585342356745290372942308326425104932941290452799594734381638061898057476735937897128685852604803123095466581199057718932046404626003741403990883046446654444139537681838778206795729836403869564557002504961286900756819001624005802705468218653505869711969537640585798216900036319661335721188796900721911407095098594622938863731403503507406485159266777317070507472626116005502006738076183420210078188561970958566108400316505749134757751353464727345072638488803415941514797794573716093342334882277801216962080318196482734213258514778285923219525795110598584031996661160136780298028153247161683130093464363940269625257821459814263425367661868619514723332527901565050405736967546193168080091232728940406706520422221764197576386402821345283921118210533702876754174336584988825905136583988275273123355003576895082498708778889018469343263981705135238635913660984370621304060053382590883612818006772269873473761505071205821656712097539837752366647629296053726355228603757570291611806517530671489460694582069238916670171557622613202633951271413307393424603169320546195627058115659448992661197521060197888350162250075104233968688667887452155964591760370608720895731751764221007527750741379360636478498299661264713840926275279653289839217185696796141907858248293934835275634259243927839589579806679010859806702728728384112545205925901055069942308256424251752112560161320368506829068708592455362732505455257872046869561507496767460970938978432320561009455742913741079517193159480276715993740155538155259560220004196214229944683731600262319924136886758378392117608892265000710139742991072143347597106963309236828965291948395750817156367479386542251835443287101613061883126292789852321774620236477533781166577363934275459247719541849862061070750337806681589787779937947803508534544499223857213070360783702401917230009059012150566994272982837636041685834421564472817993322583480645906737959099472121722882202875726271751645648145617123900785811234126079737397862601449680070113156384298746068891945224376189049907838313430573799412289176824718255570314797434709658907683810779833238704866027117288751005294096887941836502137807094108393391521549928426394448492436121185802241803574871769829034089965492476075078609315811686721919126289251647183919640687463270283353040684479156146622929148268267239953640651718044619860438501484282868894135677333176287527148741026780744471981073506516196628656325054538653849755780843682961584604061025216337825347634609823086787522580046666333453960617922492125488164062679281688483627113349480927796831247210226466640179396721150024695848472640084295042202332218390240558531503760923129741916723806368672221925645414068604862692593735432670298795326377454089465328950519603765140477461548432954108075131991836907441738299700034715094120105837781799631784404698371347077594846552525268924216132891776788108776669409411047256630009128099485001342443851365109065931883497330926661884884215492697126624698934593280461867374752167373494694008176287802689622631307408431569238026529514917589172955534142361982474543397891569313531201806018067063259433121991719325943069662765169164962159650038715613092970432792637033054200228599319093459987596075939492110203219880716180984842148826025570822484481227007189507935845726466372491397711043133367618937992463310822794071251585868623525513239039377787498833158487444960377138137016769733022792761896206764051922443390345288815910222803880835081173434784226978602561691389155709032218586384597168311489390365738354913327454827377234561068991730561063707462388103014253017819832902799594205820748157133055871082694517337914616468417211466630452097918528183569136383756925436549197926873024026808046834807188881253670718903396065549845339827903344309569446431392258840604491008348347736071651838823941906146189506007491958068671995249597896463689714151567355610017795738975471410479360307038206468887241993161127809125407703506851949686949420124341310789485643369842169335178956819392607959619080200561190788221261180546039408972876062561830162125127819557033535234376515784368736193642144178831445143067303709931022678590505193288133784343457722175994006007243916743818664445011447895998799761763009007099160172524713677034245423859882641487602732205759309330490844836318081720007631558758302254637062479534974849395968560445721432370205928768391947246591231174611170107248546941889492645193611766623967159012971553507460751217504226368847962906879934546880647295164881228657205200962555699455095208687363792782877994958770577802878674047079395136072819749887954693276640060712569461765577411710601715022806435535698699160462777111239104754348106592503778356418838294293818984329606477452659622142518817172174597259972264911903378220818984107950763616388478062520624543663059943225768444276617860437647931299810817310613652810631327474751844132327771699888367306352462643266780090478545696948742464276398157908364367545684678065849651845910366327915675626347916424958772738588347598879327544163049593459040974895254809747323615253946514331495963077546294998760852198637045759500333043931937684518469285535123200590253125142529803902593797555601480172792546492655446337555446784497869511277918900367358672750608329256959811829949859959248012859159956670897402124195018073518784544703026316302399367130528674605020183791078096014449335719722497886433493985906104249334095508359523645260091691941997422841544131746075451189921644624610979605761200197241117255417812755303719666249964954187140863284475195667294937248147004380362319280254168788626707263395462323823215543216895226289361099035803222163273897559671717931926721631892775978600354841706983146792998888711621914709093984760616906981150110888742829772315469167971804558056665897423477791646076587587452419954780756698690883471984290779582695800939803258165037228740655579432696305792494628175022740279421122040111117125350896556368939233856381845060280600627172532462567341038690679862553996637290700467848129760934019690864613475007033244253070946179528390714674917633170422871165929875249113663317194820826791433195491568503777208308513282741902384566562674057010854695318431370076897306973024506500170118530062832242473922517636922090979493799213864035368575324486977335357825326113647910204705272703223308137958513508393106873210206043475321345273633964547671250809146440956397035997855833192057053815189727839170713386672099316085289381949122065303769059904187052815110592987146415543622378906294282076462753024368906005032732501633565085431422175335025919535050382424691134367024416944571518787855308424227578925616664419181953031228979587397437929156215367056787935496964393127018274472291673071656929561033867192264363618365056083607919013762773619040350787148471019164024925646562663169939492038956169102193056500098671540210029512062740579677862428299829426181921093161035731328470753105282696682911761698804654903764217136484258962258996465735357767387795874745573180133040830886831920211030331572807419863711307527965572838425456319353922385591123990201480354808087878913355721090534089649829036957630118493447412506012888000439799525572759793052792929636996007704604561424665107797753560318719395565388655888959594077009934254353846955320949082134513800872750030855322963426529672231980706923483995179720947441294422115474360083480801951347792143038845578232168351564521222205031211910074363464577774968788031137966257791843238406674558383153802670129153809771623021667190394822369284982299578006035624014455752677729753305426679861803755107597095934609377879297075138986108670397011586158397071442486797441436583166204526107318027031808756037030095238821699184477714301173633993010948046466510009553716352596594019364230877782097821638605387918138146638257627293976035253275221008208746208992125337677290192025581607951269545392247004825557259837256135669824733426539906592218685825637621469066244014337482705340545709101389977613000971885280367870985541224676653615486468534272220432733951307646984193499798302546032109452711610519894842713415751749912393707520055462766058193474878471818126952087027054715325622471705743231616240594104230776514581425427882626572382225319998137263374856988865614054226735608932385974652006463576369489701675703249400804804365093104783060160223641953532462622384716199570232031604248266506918919844965179687448523802752682328449418373205398474335594023649085332972340405340226443592637340684544508889260817833855954770952961244139731270980328812315731962659208585458690081392944130596988130625906987720103441832530247388152929549624305768923289231243582569137302304768716504481559671184572555605726691206151539576379092960819572410174172012792574400769080131404327415272693453241961942284613422721510709238135212007491634000069663847197405098243136342179648424553343021153494864394903348573746850736301345839555661198178381966796250612741962781865127739962001524018624496355132743661677700170607860958855842861578588917768190493458827079251625062857751948437676361579442373331840509244803373874470513619080092044231638076910289052965740679777380847846689708153348413451666347673495000276253560252474864169788261376714108635780627165721167612908306314006617001017819633847396891092104799560179316198685157009439806097236986188612445144870936980228677641424958109353443914722098644335594240369870519380696305315008248757081513055994554910397546805425755874055756284679437866210694301999074385554705400787650187814919413979918268027604689122588348371145038647119520006437506872545268842919357968234005153600384147339192612534597354551223137673792958868486804017979074635182095687589421650760987385247111422157630784228087863086586747956411457913330219124274178964139432358794085952793822946658585489589015757631264525431994491717179416310878730735645742475324686748317670704912804856031329231315927769011240417122889149435508614429478519120337326115663511029467474614625489597031425633290254491723881531290806144625583773577264915937542311833570420706410683914696459615936562986146763098138672453036995567451673340712692859518198262970715667639689926586591764598722420744402630131267935032515623298449686877576001511517658839250136052083788035459432396103797860364196937786157434083978497078168303823578875261948698332682180446546750995183810426741100553147311260899632614394409299035435523440870270965228933944959067966971151997609301774722833271028169385576813392391364411030559457434699432523632116303905408929529172465686833811091312400419856507978078468025658784410961739823826771035359692933016006841436085127493798410757620625587956822642873104740174365525372921773386890048022521738651713247214621399157570573568370008318141127641986547133858202157156991594618083423122649868189119690978857687726589522655261672588951048043239724553901220905385685080152301310020941150275071312766254300529860148489967791739796678696201192316510609017012803325171528909266696720509630307260560095651906912968381490814561395862272875788431906729092820287002917054003077183754134028875811843010745588215824865247187205766341410949489220096982326316751427334117243155195593780582007892303206281287094635567056756944769655680603737714095531225313325013524001022835180454497183326334509904403409186224964845550546421635145740212194531234970494505835044044252053704767937358248186714584362268365052726371497363245351708311453455622318299506805568133719240494383597046418246629083635816783731635651703213688545459155302840243726183662513832825414513791717299287496369448558008648326541397203851691376012368524994418333309607169989976768203314245259473534839526196606740945439830228873514576306545776626990056524944234984944705002321372359540230904184119251162164065666761818472459552075145511339289949893428174645928868876759688752302237503070744179044909324073485923537637208156422698082379106573992587838613530142970215267431767760464740714323194808353896535618382181422428757652998473502679938586503823815708963818481815362232143003169458231813421150480535619624080561223465422370841710714162703248089394754039060356777368501189312628927945183195582256028857581043045218923327673125457789917149197257076042394583195250327901600985581531298460096253874889906385974509217605808663295860850491825286474705480387164677534398784779167681324274251964349788504095248642385626928621434730567635949571992385239086802200689539646195106840996412825098830998806642005911615054263852715570921503096753206979155945037100393105157085085469847270403963628980287074177243530583699568633065612104778107211857483992104861174736913361778868379844491968868676600870162906777338649933534318161904932420825837635080797126014244892105925147094431274135870002698675735942216703174929711642278596173240621586010082351127694993066018824176989304512202913060106072378890101256916146387596196443479718389838421025182877822712547591286888031636454373571011359042562572531687421486434866602595314393506327209201485905468668323801134457935822622081234924998863599801225003257798823401430635610669684361529985362433677322280637124178019298658212315693621688575859827759421255742508604671559335568295326247446116048567909357728741314155166816050087522520636859119173153379736533473921522778022668952152163483933910648918930788286336686588301858063891451526297007756930104609145829599761470232633953737973138775732558707100145722239087820545384580776977138728609907387634134356668661011323581379193780425247242592130017326436300301063193267918419451197611338442631782069827490120946194956141850207768991493482416880634519704428328306279529455392301035416727302888274462229042674178925978223453787302519347153957543693786254761799774241726458055266022515728997998730016053465672672540879175366996204517738873207257379244276860281573428929101190860469093717917009540194084271835381031783225615694605120247158191024183367199111484491529470317341630205319270113076212220468947626098263829627860882874225240697521573488883481941332107993342775482394030372432353879124735955139997457454228574616926537463578588542306106473482483911810171662426856523367686417265253125939868417426827513095706731601437455447929810656083590682584775844079680414831116697190280559938683827287307786570753987947084790027299639944536957580667090296049347743522435838502724284242230410384074018758532104557094712040704976117766386406365620064776457227276530987068661745971335248245472609110949037773683529529048506187917952561094462542633247502936650558762333673561071358981776354394722021261252948834630833203571299569025049355529838833596240104961117505576120102571400117625051916050345025689522589057679060637936469993407855609905186966967102821275853126508902968407035534910819489666605388281010893478469847130104169102475100001080308184022309632340276053588114147657017392331866540694129409439414519290715137210733629636980433749748363365110675536650657917094864069814460159169863647777988407068340579582689275611609289359410888120996887248928153959649714952373092951098930806406316995547788875548062655091981689959850033976605173012670385799255287516382164442734189735938246215921583874710075013177058765081180585711803260285013159001183489009758789624921650502069090834973274468195190744940173327343265504589892397751960500853116578922309782227921277819520652475193006453594585940320286844062709012417194202163787041076713334930683542977975795055720413342989485327723837276145662490848369365924755955846337867515136644971099786335611764541616678037724550394191486249652382338969109955725254469277032111950609753104162061508609779842467016626967867400545169091805591172501947273502223515714378297578038323665561625601456833770153427542044650558902279846416717573867660888851740347138936089355837110586675807898889206675930765637510693200111805131935165854423990591857750734213479938629379478519868074814755479978552795474996420456448577954448695273979030263908260554140647128366168884865565872938952566562753329853178938216344217065023130248986316818686905187750427605109964200707174462998866584100657819690123486096338845969073590837568472622950087032304294942059786154941659227009974595264173764422793640788185578703069889381303290568721107768591514660984903193825918726304867395555288828086683646418081161584302648638206978840608323346025747985417620665235227357709470634295800014076604933690589278164674638518832641124352604860191307014700865090317723836597672571032140292405426097734517323843801059270710337985819173434944003986765399761808318098580183382075126025964463886620363166388805419681135447219141453756584264404123347879371815395363118131065458953095340099758109657999576799830822609511369926970600788670815541371925856315965263276992072328450889453002241566271119611796612290481420083689529107643257618200524266760754090963435086095053790090390163362708656660675025140189431711214610147285751824500287992381801228583289111090154200593565579120157084107436538477776729478770003000806879231349446541157342671097755464422945166833673752172090432810125435369288779812951003998366485287593279694772089176347963794330635421972935561106275888854848264072704778211610432716760790915437390928861519846250375792969656645146801073960642525970846400464215070435486581401277955629636895649891531204883293478332051841567975813488664047973299538943171522448514293297094830202275273138412597215900538739146905326057312051429939878577070781544705868990753459326012091197526221060255761243896741526468868575868864105779257622517193280422817525500766486773295470773424084695153460487764384981898346593108044151175808479726484788732494817589861788649472972676952769629394387274565063254834466174537850099965470732859661845608825807378358484361221747886295073947721359479694368770802880280365640172242049670396071954850670879397972597368507112265813852176946192270780343071746373349184842246485142387820268501663944085021032723180390985510807342240711413255479927846229373345068597615139747681187948714383812251071464348444416099545110980106894274064124233389889558599618353301724401216082244903130489881192790329394012936383774648623458663201904592467617234031238707380718936886794520682684328674719281815950236320408129009044578799984410733608869299697340115185376780870043087776856768640824261021285862760062836109133355116546410191383990708449114797850936534978841056415437965545821222532945014831922148103151206447363658652292660208897099673789415187661382510933956754115318321707467790679564854967189238339395636824850987220738966917785205636392330965414638701685310800213591381119050426241802209869638533241336167218604300298687620680449103632181536890934514767685497092255026931570425748770461568561574292311515048590039987039537482704754324943810147379552276679222729348798107893006017340313807532228906674289841403019872163848608704845474396575837211967974792631425579261706119022395200236270353170202658196038675610505818715767027632282766644393720457578424750054715052457342803717597145736166137093559602353119213751269405133412710050002873141171407574254939800762786904712685031781272165150846055673417582185677612444105446442531935784430216448249715332738272954545259219841274979521287283071852283021840690673557271335442794540339234832354449363743073544688359621229242846254015545353801489364148751458262563163798281873644406047608080165290767031779244814712825648621291080940754140725919787604681961158436660483069150714773702892567064898187024789180745790552825962713279012569772422218515453908679702434105020540202455788270310533922687047292711331808506761125816880879965026224227865207482188962799326829555770556759222550205635370123887650739069709594053962335207133989151759729129581430044500508051857400823424815313871092114647833903069714961536704489518804455834572411619502301240915638151409956353314024569092167399479115202790298263030411064210620035605116740059247816168323366047129839173********************************************
3654413943060321073181551257678282476843821647586953449452910900452734289142337919236100212282140554125093113434456333752381612006775033192956419568242117730489183856844033771752908148300616592712625829657104070127275925928107094302217850647775328751910437209775376743146616567701577080707591645148857442670383538683511845752328669357175265036672902791437909684490436417121260001781319984157553255669311968008217196614769119994861501188854714224384322782755199113941110486564921273130962511931948527744171470060690574076509657992846337248060062203407257545674725594809904761325868846622139205105194070908238943232147893622366443995282968286215687476898497989276884901924724893624088289556445922405646919886319687491938323118642774104559676408070031384451584582652480037155978633957350186451632453103114064354178901189055917478623670026551023027216332907844374379652672081582619686369024717556604811706643466800286013907364605512723566606768774503068357297269134952046444251249833574672516169396100476845570448850672538688453003296514678689279881042363581775404548731359823611638691669018699384504802933361764066569442010258434291347103764048781906837139813080648369602518382030673997355448977132411459400897485129113424234616945146482132763482010230921198495293238711760324473858631518702255419260955718875806576208163455005530401045473773249129182814789700410794561753711790855875860274522629731942805223268535569119586734192323167515956958254255521639469145385765047429642843513093185915238682255698836700307761628805432447691225284857539364674356412410462068483543261136360571913246220587797466202559158780367837355085310667902129386267934446437813125923834446033602935371720825276931096462986937707492286280450502695605409173902378167219099977306134790676810118506161098849192699781245745037984710003815686898557510575391761748223943044284911996551814269051869638767093625674575611725176966145818549561944804751243737562477949262698142329113707842180452991481419404105786628041652429900926949732347410543345933128424547611365633575019980743109635674406854773468512073535455797070326518528132167180953296310801908270271984074596353805643577466319742971753479701394352606931140851128193505002083533384778881987193562692126809355454632585445751931253944954970278847251588182530899530016386357282732275226386984403805944322755777487206422542904177580095029859385771541206687076615528721055774096161407708673536981721545515811936361534989820539856953217485818299575549173718463145802559983575205301456330116461140989106975211016306560328739329353832994189710250878382048549954534996437514296210487651425142256621456245160086763569235712233408984368780418598941740421962071721273846649915438352544204878762922147606054832634044678103669266745304696844845144043011897764461914904869390825813166004069729755098278391898506007012129905925402174064480864208480780746432793119268181628704384703445418955248180442184398904407321446619736647733522441095512271128355133685371471080992722734398611394056548891211977684381372755177411450856139942583877069709623113821097688094023229349171774979271131428078182191324632586754107726620634113503639610344033370678867149052863099824277410009533736125540133901831742217925949650862193595092604193239362419656342521700005384511672049628156330741515725517663082707200471487377544462926099957761053918421401521963563631927929817765068371752135364875401718612922818063040259627754805792476602430522696618415070696952006830832420319340922919973742522446017166339615666363775342774331094098683697734283043545241828194524243346183601740110212447660114411355519314087703185550722125000434116299441281502524892027159428781409587791222481701828079518913642882714054974784552000879060703921182194232464801622470383282717951899624947536507671901342581044058335233746252298240925181276716910212966724935353822581997830401272230383591683482573851279149473891383766432305320166825579243340003925717653798432129041130129106117809453777157454782094897673058013563974393529404720959830465625109097267685889859644688189980459891219832510240936251516471894232235393825679690107994994278030817013058135013264442429053349607735518145622675680982879018378341442611689976799728551075893120942041088320882570264621232186149747932812738521575450200243553315357588913208421972007580167044697901690670105727548014174310191709940446453492687098258590093963261918145480481119795615208019056658942677898452341186556555886843277937938519159949625695919123711512485887077810327104767765559144440687096099371935041582163052155749074128421993208727459095664563269437260900816553837012554809025279631987628198495667253167899910284205352278230282730654448258756823166900293521953751544616953838622771254056928491082932810806041168230478730137793657287782877396207407157281846533106617422207742249096612717828738273711641112154113577346458230453307357328408296957413899320548865197007261777474393741173984191257360120064570682245420807304416939057311747556913258749187674773560334152143818218057160891787954573317673590695989089407752933810550115721312903001156514339274658800445361525543341683628787580214068064020517708251391435844569477653118018663926190405546715929682957316135059000974169900599334220954905029314035561560390330306537124722652503714296695966892438376386388999471790177954535399974399698991509529672114906617114139104307876291028897543046621072255469836551428810825741070296122599651516757863782358217093604695553795016345354091199973399002671282440420967222083427205159707079681280480941488989072542685590423450835801507700053962307950735766485716384673640980684408243813917776019015532035711097833040800667920058082750207721364470553024750576180256800999380448735197749890074520626464173490188807125955604789763222766693982094041120070204614968099999822505386776357455655908627854336353306515494095655550465532314061366101590919755707368735557045812232271123906175204881279175812493782808798100958682037796158218024080073162072563453862789045160567143489462330124318716605006551167606874442675147985743288950239072943478633814442753970715457611761123215707396416472234934495534377584422487085889828812127943436229923725137732386037938847459041143601029905819768023233955450728361855492640972627054378314251409109841237893299987072961065819308269614849949501026198902698185029348218273487495766172334231064993805235029172427738526316933761023465588682762479957505819099776419524030502850103285016880914038052666403132838063220570887546938720087562806253788494269472222918398282205188928239554792991921362086898723774871076529745790786059875007813606660513543066417098904113453677639834411548292479258044698111165417750602095289247756048680437900882121823509612278526634899564760089616994777309009758191718959663422309894553760386070930991367215776049271974954441039539661947783927183053333491276758030143461907114995553469113638438650074987544745224402139630246113688819886802650907158973420811268580042668486457762298088271210074962700188025583936434634810548174157920973565693071250385697071305274130049187657116874404631916061273424904090333568907441827625243931438676647773460696489605974643191668420714910799677433567084201763476540685499435237875869233743688577818379514826741432085134463530023816753767990148038863771335510041866152449760137297852434484592013176832673828944262312067898116649725348085480758043608277815360941954396308881458055371374789551256440047406075939402894245984905873029005769136709206587005857416110004110633585047190992339894712098419332827184586820370490131166744023196165464504702935446025227400567789642540820227162848301986666519802386521783270211892365177675339446362228865806927672933701247350488789274900611583276203805346006672770727338756698797542478974628012897457569345795356688965590024995494378171060461942092525312149795618867520543008638969225329525776700462930595160802057715297059025568415388186509636047574418154921305121661553119653274033992156362361735693523903765207533082242823479783597198683740829784356450115509850320298178489570729741357884964163625551445740082035701717632659441723523207488325356008114361293723698542075391303296094903490621463237130625573977669109741868472961374382587389573542523637763148733896119668625367649446747737316765857525570699188448609172051786429073423646542294075883497555588834876765496416428433718204308580874720331315632116892950122237719416820687050745322328846429422555155452291696017868034142794022184880956369317021213151174842103240188336995274019221049092685328420759009164151498586876507536586679587878023699513364053399564125257872033750354212571481405142504169771923052520248603405589270247220752734517234566194355573457909442020124877347375835457070467855243121734985160639647396108833746836270612001978890352587498528594915137086946617030190516012719863134365290778667447080279183265744636055407896755900838645837360991130851785852982036090702124824512851508532532130981980412919264579763796728792462234201198416342538804879639487970036631667703989936375442733880462242029590896220434009015387383360751583309274978800452426228295492821411548298586391533747851657925105263519579375352460654639433760787427662178882256787347494222894159211716073772271535762965963849427877277096692088298560759809580391680308636904382502389513533444390266006417107967623712437438146664509484868278265813045880282278225601284659013170574319976925210639375065919495335833091316862602996214199462716820340904775831503961828005059201511621187898330609324468083664759748097697297916264263609169570789984413919253138544236662135918961703419932774684890991859695927119693773230092088136401412233443179705217830657978908785554303619086760905083608832539752151946999736204586411459827127081840409019072550906924118671532695417878404944159338850530323727602135720601503852229241448948302165799035527514007795209044777845273128516327399424222468074745280124848426909067846330001790093379268629569023282359994589879765836067209890634979463875839540538885490835422148227318257022992901019882288985416199606081831630246827519095312950916997167567109301608759671003692459400144852473173972934530078725582519663539602120441849081104299030712192654846116335299120516679380158523082864460053391281307154399524018609883029381884121486766866611127477211967776261488216609252606142422505661080633609357346420880688451512118395341849767078466514502513777767300362429732932671089593887362975823726392244903638689626564894376856639132056533418924339000856748916149125025041210594269664191765924376678681432373811711492378162057499475698959292978958121798854145759160669224342471657180960671807041921984400289177907955526354628861632428614480103220469786606509338037271006943175177026244729364031216542840603463107773152152435168700554902827434571415111117789049829311773701907982971847670498067681943994946419181206053896225535621805329317447325730238613293221907728367943368681701313286392130149287220097842728053413116997906836535251725524890406150348780241023925862932454820784013796462008913268654328256021175464578116739625074957662615186881653473428014471045281824066274565059936992809153143309915198482847706513934957627837708302264562678792084095920657946010016018694319909153838790042297231880610985542158472431309912810982679289326011422592575678454750175443815344761098020039847014040307934232338138706232904165541249402049323042159784226230398133117900689645931920619478658674455717091607576913663224466502855398336449187105282313237075375648208104444205944801390504109154702511442967869720973234821512719274753177864548639864443277231296899498225720530294306987338085054213542730198233028697322755671554622843035031318246663782908420794555205265281090948798857605142724816993168080271051296105418055573332882956699570484196939411612763808195969254699198979886331073606477765151770388846870242050918972719562938337230453883492454352322954631666643478144040013564664314016323652506838236587896751610699072865203894161251244315845818597163904830662286366511393215377680057403376132676011726841678735972454620467181828112910313335453046927064905794048651365345426612689922374769502900548056564430125255686974788227687060514600015212832963707632710010207210759357017639937848714955329704935625357407754375158203475869589712544983861880433900229399985426430713822422517364963161085654292315613574144814530195012391891010065323840139486831965828037000108673691437373310783717222534388943061438600297906454761239199399173114652686477394769830432944963764499588031344309701883797449827032599581267019147791607477868715551496728949085829065740386278316137825277088878523583699381997474492023968391475785476237660034387349482940489927585833632491869779807825192659661705129380964246185146153361875194931253340686409283390575398706436290224037071271165402731936086742401062402140559494199753549423268545750805377023303780516473756185917807715816106646794881525814676617480714668782219176015039226960914314566177544982661787811585336562103248144222030757200847458762357781310071303441965909197093210086738674700266172362147330753846442317117211886447434534573168660901430854870990144551253098049497853412618191115405966046935171169693542655938878493264405087735732066000254327461556257355338296267829381539975548846192056353828606743358386347759718779241421238737646646112432861678719334819968080569347370101788769543963553971888537791351138257007652463092796100810516594466130120875927379529810752571506026778597632848112428507402104615033850052977119782758129902427010672356779287681830701107019865393466581586105487064898510299568757040751124692026398970877609400000579103665619472062463833394069851042658741484008575474432406493092239265036816979869233334097476803876570508851954474587330826001551650785931718597558130175542890930298555250436857167267043074177005882953020239346065054535006875701594078453854140846292392407443419366087934403080740769204549382059283297609695627487019835281865204449538805305887357530901900260811358038079976050717287524186417667157031549541014213452682519946965657907426142851527116263414081922755067167349229440472201847807873525465601889301176933503673823604504656000524841620862922376096817100691535443268339089060043316638339403647532211359613839663050104072249580098261230560171502662686743591666708746731043856738810315419805321179955928597820606671605961870725062330687981645426188360228916231499493808562151607482058192055036915646455752159428804702831721850760532995536825121447912319416137984282913281216252645982786013394379219405963680979923861853709964589014846575294635473124845672397700269358645418532179826515806157390387556430092819950736499629751478337607125961264027784600093499551583197883973728732835485393619888783348041039888131054759032163973866781339893414844425159850954890812055807703726167143488541249975646985055373659191588179680557910535645340356390812674543019402459627001934992883518317330946687295007651939142776856722891451460462852038065470864542301498464985666568905811984711154409047688654130760461646623269624543584256693893348220687142515996505195748364111940292491304036411272544668351545789270574161990691809841639427764578853244446220090288512232704528176625310884737006420243682781321912348982718237436819471804101066161756776500087287661045724875088537171181410420619586884332568881691191114074103226555277174179952452345883086923043849808774106574429674554550820848993330356208098465721619187429119861235431921918410636121025872320363921012091970330330880030637843546274222536835700314419907163741247503288188465574228281510397158700524958059336504560235003117783575364761675062756878461294276237116230202176441985204240314192876996399985474796896231657700210131683210062592104219347477259122283414453111242868021977018416671820201919495987674366115760923040970772649493654962523249501469194110728234094241762117665199509658822739943042881731934453511319734501279627142384578835893275148671490874697901498949786866240290505452432364903530863866108685541585243740080419540167427053305139937888769768954356484799142471940832932982297836822535248726213710469676295310895847800403010309748971128493467259657197915250330590466454811182427881007362345168170967006251736458423568528509474196863901370533990730945212390973351860764039665514623002233897862866256155067704106277790467130458407430087557262961229483950563772242355067641291941927974808322509597484504292484635078766495201776372296306563351504299891794974848956795339505610875353548855223950908689034713592074020822392203291385983995097710129520771856444040970927868638727704574720366421765287487374063899107693384643774970177795204624393979169134878368619111680688769769004501764885035704358119865506915666312278945949729762332798663654620062723092240492633652501413214149615040241040955241383767157422085145042681653181919179542228091396087369120649434422474632499276644584417223564057307157730669310429934210397299440718103555068566717045626113709856281259402150840651861728755150930971196548712502846086757148159424736208244988689827140005045369283904191804173258018948387134652275402263856024192013963489730033424611731337770446611597791178644838275434209101933526616912329454556472198432336843241151259263237883364400069881634491257505076040859630032156151743762473459639117482128651432019908431616841514693057092375284603377435705563673385454481972985282280872154323790774524161906358227238442768859632523309636794627907420788655287948588863162537188536280797795812018446627017785766623673928137560278406782876697435464475140703593142746600376050586556623439635155282203379584959254388688714441645746477776189808732546090360665785687271188461815920216388423218976627215624922381330806889790230479816490440402714822476503864843289323622963129568032315831386738621513273946034255165815368002887792076787551177227308614784320811532429522507062433491883410888413113412053956420473380376177123943283202016314019082925960883995145695181142046110924247119289175331614265803061313321183335994330302739510732499036677150768234334771858163925391257354763197065022190620564758088977397148188816488642341563482891677342893729370157465865041095176000128474838145954895384137400717713153227645260906009290852077595441516835052413697222923249070297809282533571473152381051122640976174380364686291936793446383727015467909564449269856755105338740756967665214134443277605906690851918868998263752891417974996071058898781608375150522518936838301321122062884564003231116164716539398562564242291268922120026808949240271310951104013882127644034370985657314425209985733520347647925132960361498579324926497518355072232657706533802017984550358100032586332674991913108817131415539166060854482576342959262914999263967849805600804855976479555441944690379555001042492944550614931392020180437623749590032668444860832456338256988188375410479379997222513266265917498825474256173714246007789067698148173177362467833704343419777270272598584774145299987021062360618434874421956595814171394137142903983517485886177714103506920587890310727465245220378334402348055963340260538336990804124837859023487966977545352957128817158416042979706380009297427703061667700883892832055256984386209387504220207147461906890154571510928817075282181842531472145182567967300680115067610679370794192996969686594242354052560308275485363448570727297871379698003936372527449943158813146502370319695179577328401384429422140330422875937677504750755991467618812613114934036794381141648624478871153301192818692179625033265394057240961801029049399231165931124283955725649364325908577662356899427393081573918798308400441247990357415535258759708107798438151651534036361207456579658450449886772567857565683822798981349633472343342627050104980030565374347636673873031794772830337650213408608377307322698942958142387478118304928395150000491230818651634417614192970734966319151251056435472585900269022336401825501517488728585099122311216245475681170654989022161266882133216177600087884500072798261658097153083370095174230293502211016052806564642111316511329632971189202412353135561076310336095427270970956257714770657654552743024530868510948697113394560361919379944259228667490205831836624688492257208629574086591475785122524544939128301273369392926558643885731033215143839279195951531743714268099470343988238966804947118556922283136875624644346596796612661262186064587764227819596970067265801273040140137635688931601856312935406223698074559530862037716199643736141198341409281502657629435418783406366587245248910926384722629780894962461417834118957631997175755041497234112897473948133517794472056449236196198075406636177382351890768268238740329189155292187696287243651075003950134860426726155621506024637761394729425936659581785460933513366906903094527571354229262192236214004025729592025289436294834732540722508225109749802148012331874767240248096252758507046729876382311412781207280370989342427936236055130792923268877776337069718373523836486041309488394099476950808229520252040697929973969159107970885236146220803093379147308479743319626103524950951714623130188370982050891181676491538802908017219545343334082886387755072216721800293999785255647929628467521152709658639856968926087135488511385942459136925017961196201339536406298184263113779480163375987069835647909249595267152678787361809910483090710406516386151090121906748067900674863290871582106922075206505399993975173508175732004741975233119293797838617199395328835174258970243313975404375128195457390196553565881702358170691220260343822637283783171031611616051984211790349771923057304791000323262319608832660286118584252512594195537979063845234708852384729742319885046523469231037233086214491589181256754457746086930753455461147595739103363495057480596557838744298727973886290710564317564596146382761611231528806496803997554553387168046984406993902301940218778213482541646876802506663689732386199878939287468789770756151528187959192216303695798678902569820615245142929853248675706541717039962006197340294366034376621241939220067877621680894162328559996121006997900649379793797438109017600865652182664768035825184391321101992084378399899998985123891815908446835355781082063379864433219931736820201271990429698107924719117931487473516774097519524991414864079742184232746207840876917018125101509796969268688976743582951862240743478289889981607853700017041344732089636032773804774547145050966390951895327703455342267907859634712765046619352071234796261915589706215363827322896195582178887031109312974971648062410104081414730807881412108221688316066349486160419636620600891861456561233383887027711561718153328197457059116624276242597592860541244702927723036124625301720270480300699026831402796022478268432057631404008557543936865595164878185881924649333682276620362254770336721751567126233066709765706360252301968842748608236709003957923388631013237914024625872439867011744095179949385744399043363235530539186732502335538975693080599964703658408223530064215143635025717616614876821606001216765227185341195593140740540891972551665829358122553269240125312296182814628390878606198448584008093720995435259589857209947996441857544446038705828492851235318987029180779396969745528840440643001998487099339118653946563782938406520129607599739021015537451822637531050870839159275312973412195146960653860325764151995851980025498233497132250227641465466437551454252811723122815389949738796280791923463611117295902117202509678634478378751373269639023762266630217977549898635028748944702416232784149491811410597166456881467875015656587335697365217163379940509735726164524936861489587691170193042959740952334588387134247007298188744645039672463815773486294374518517528875505063120553005605208690404009072689391716425036833413501504575803831146760969797810523364241074908681687059656857937183530302399580747552929915669651188507897155617466214508738332712280753995713088638522033516896395708188022534498347626300632376262550933572240085161640243642101936244887681898617554929309845937939641344788696607218809091080809155396112627400591821047943231937450552554959398009443675357015556338708934650962046978339851285314210173680387658337825202074768293795323093100000871030849203538978718741916229870304676178203338476407061045538988013006029619196800660394630997108116934738447379867707292759420367726220669495893902700713807942636783213443907939004766412556218366030261183695546216426262286949892844664144965837144905619976538105112150239714662247554190607652830569339153922631033437190705969931151362009643230402289709160422405995767560759409015442736879348610003678251642584691018902039425226978431411408108144701459210514454244340479448461887607692883870801397570669344656864414537759092900966489724139254531544457623244984843727840399183564050930978335267320876180910468453097287752441605288138224989051863029910050792333332985155345250078025335207631074970380420735874474845523474729596552363785296585908060022200919945918848480391876358668658180170366480883934819223001511322043731019729183199627322065119820683252310450673783413158398475991750012419485655340260789336599018468344613918914185683699011610487176239556202950891451226485948051459625315054424557221324159699262856548588485732280119157332672242005151759086372564932897577923700567112746928726304825097762063695183690275305412458747947459812653538057754349470213367491880259329272001085330369821658500468211760265218150080785463038718658026724539643720747902353481639951968223160252890902165842777971217781654682044189567422743465148082623412952078789510141986920640756547193212476209178094297732236576995185569375171632938703779946550770892864786425750906004646891799861859487446420617023957418144845936846268819494797069502590568557660945877481833455139924592674847956884570522520834033751414675930288536954283849539476906396098803677141063302004179457893440675080536839815628590015226198809716210213323208794327899135980687221262515045870726344761650275600954353071817033264323432405541904597773400068835954033700240864568780412825606858403149383010363149284894302951325359273230463903719497833490307421545281746917048727612998362254417349741653225139620853466572675213783847528457022433355136296573078680121726060989268472757315045221175810625392989450113251056131945027313844404257265993894761519631846203398663102902551476204336558063286444061903933345709201041079987581588090109230004191514841304275146825652191034102449322866445130743743633269257928841643244409866637131372426276988332785776626043381416845651452052684022136299231613022027648310197113598610344794731302831705586575288689813520002148711082660569532618247665521959618317457489157094943853805595295572664758183870132183533771015328368250679141138270629499376959275435634651223612031562579387075946342442789223315224047311644947578706550422691949067648054183334085099253274396782537857169595309589220796034126129457894578485089043164384558583870823296460626428477671566643767438211571925402453307596312362548525707819443444804286966092741068654557849394455193317905026516291789559444079655002824552927676175689625460660618505401662780691872464450124349469436645124399452160990368190826711992275876133601022254856759726735412536178970225383463749457910543810733050787600103207889037360547521472167841392599470359273251041297511908994058265306639391210379216864765443333767524660765353415905595988389230188282194509873859050950561495070212823955502007559490235187596617577259955776930487510303992645257927959653730224855144836384568079832641282952074438682202389224145115141553628310348726655792910367245915526093564537461805562573702616719663856461633870887035027024874582431184362737506212702124872920375177663353905047177434969761165159459186366838179324416635132951628948279522221885895221080935895830104705371987518066770681356861976076545372733668314551137474358593796763269610590910875206038018312392368392778129329517745902011827224447016628097054094758007552307775118274384189713944247822028783063904386101995918994625862758756673086530354276865118038801900748232524079176783853828181963602051297307668186403868285231046698858069021851561996127991869421139658970131548334228088482969324706349059785180543088929897020214195578749974949067548013132747480837322265395344486861621109032148684549569901696511944694677735326597309874404235659794095090667882472225666727164229621244291373425884080476760332229659825733500119360079692067143491893363541468604345460494212397825300923642106037099526928599263264361910666714649539622845301943142171869620169445918990376737282366001202210975310344902902434607606876547757033470404165143717934638382695546701245112067825867191925270710267313486751209107096422735337322245482057441127365442380754055123215513715066552558741395642297816033442790040944110307467885602343939190414676704012861940813348386118382876761684128446019864064466933743529140153117913003384203726576796318032641873703713062141577056078035870637781409559768009714604296588350452658923251561745511256071012733774833463055807035082994504371090134295439158974962093564597384883333367552686240266888927487282665638944216412659090583065892591080105783790902041251845326679157115264452307543784230951328649647901707122075729734890017105333430217530027198958063122526165099067511202520635700965976392343456945814051944002140649616670893485303679337714146752362955172742552291407403434300704688890407294889573513807297259497966134098224583291797723339294827521776602437454770584754525722239249440125120046387525767127383757699634856656632014928847845554544317537575839393312874683141848432587955349753576001236253168427897767713779627264152880165651910517361654909004142700841584333272268250003898129578180642103871678742250063023959154718682827171508672168153986663662038626801022889309660050482603966501062910871032685792975774553948975680478724253351323435240380746647975851581957321312044218791631903861319782407962249867348642458681979615334704905559006605894616961195992730540129796225558310797271531990329650542816839169195910260801310151821711033485178553218912359065734178717471365227243196633296740348667088959194231746912106908533737358720635554080753732305606274101853399975182203700284150132686426784863997265636786611960947913908417912846197913325555492933793689731869104489106036185396244704853844081617152160715741414622002077387689558233394264870696376652321656494926620918328112006929577461618824055864901366326063037585111656740364668341352986864178075102809593843772649540095334013220642936554724629634696473614163638389050353135190175548094437064962581674543090647649540309897725563509051921295724326514457173721071198506303076309296773035997493865446570597717971067685330417952860382250564350049528434509091605569604846006274089009790870176743101384022360049071281392050855918432817170744618788092842435761578495830285687990671043801881798748467594939678889787373973559902656096046874906745032498204225353862361042982201048132141659191030766150134981948441616469361957163856395482810975581063825189523541221561249315271209227090845702192816181851322135281765952851892832144636988874560346938965810806028088636571495632718101695362801234841797037518332928848178272922890876309884718375617056763223726736571446389881669769365651379116736043038620754329474192882482408545976936700824568900077917429361881878952654462380529258882627204288632888100874066624843894945079669332624481432204105296990416003133615427538054917273623566745118137648954248898063397860776893782168794355794581495796791879159014448341639869937861374087654971602382779418117220813028696170178734292764124048216759468613215967750052125432173198749349598366111877636150676108143413510891577006703644620274203542501254817522654570220019656850452464101955410362949667130764929979551580657835067733737150874933714239452895763174292632789914566741901450263568017169090520452440295718545898454957162496000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000

Comentarios

Entradas más populares de este blog

MATEMAGICRETO (El numero de Graham completo y otros especimenes 1)